Add package addons and options
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
class Wiaas_Admin_Package_Addon {
|
||||
|
||||
public static function init() {
|
||||
add_action( 'woocommerce_product_data_tabs', array( __CLASS__, 'package_data_tabs' ) );
|
||||
add_action( 'woocommerce_product_data_panels', array( __CLASS__, 'package_data_panel' ) );
|
||||
|
||||
add_action( 'woocommerce_process_product_meta', array( __CLASS__, 'process_meta_box' ));
|
||||
}
|
||||
|
||||
public static function package_data_tabs($tabs) {
|
||||
$tabs[ 'bundled_packages_addons' ] = array(
|
||||
'label' => __( 'Add-ons', 'wiaas' ),
|
||||
'target' => 'wiaas_package_addons',
|
||||
'class' => array( 'show_if_bundle', 'bundled_package_tab' ),
|
||||
'priority' => 50
|
||||
);
|
||||
|
||||
return $tabs;
|
||||
}
|
||||
|
||||
public static function package_data_panel() {
|
||||
|
||||
global $post;
|
||||
$package = wc_get_product( $post->ID );
|
||||
|
||||
$addons = Wiaas_Package_Addon::get_package_addons($package);
|
||||
|
||||
?>
|
||||
<div id="wiaas_package_addons" class="panel woocommerce_options_panel wc_gte_30">
|
||||
<div class="options_group">
|
||||
<p class="form-field">
|
||||
<label for="wiaas_addon_packages"><?php esc_html_e( 'Additional packages:', 'wiaas' ); ?></label>
|
||||
<select
|
||||
class="wc-product-search"
|
||||
multiple="multiple"
|
||||
style="width: 50%;"
|
||||
id="wiaas_addon_packages"
|
||||
name="wiaas_addon_packages[]"
|
||||
data-sortable="true"
|
||||
data-placeholder="<?php esc_attr_e( 'Search for a product…', 'wiaas' ); ?>"
|
||||
data-action="woocommerce_json_search_products"
|
||||
data-exclude="<?php echo intval( $package->get_id() ); ?>">
|
||||
<?php
|
||||
foreach ( $addons as $addon ) {
|
||||
echo '<option value="' . esc_attr( $addon->get_id() ) . '"' . selected( true, true, false ) . '>' . wp_kses_post( $addon->get_formatted_name() ) . '</option>';
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<?php echo wc_help_tip( __( 'This lets you choose which packages will be available as addons.', 'wiaas' ) );?>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
public static function meta_box_javascript() {
|
||||
|
||||
}
|
||||
|
||||
public static function process_meta_box($package_id) {
|
||||
|
||||
$package = wc_get_product($package_id);
|
||||
|
||||
$addons_ids = isset( $_POST['wiaas_addon_packages'] ) ?
|
||||
array_filter( array_map( 'intval', (array) $_POST['wiaas_addon_packages'] ) ) :
|
||||
array();
|
||||
|
||||
Wiaas_Package_Addon::set_package_addons(
|
||||
$package,
|
||||
$addons_ids);
|
||||
}
|
||||
}
|
||||
|
||||
Wiaas_Admin_Package_Addon::init();
|
||||
Reference in New Issue
Block a user