* Bulk edit variations via AJAX */ public static function bulk_edit_variations() { ob_start(); check_ajax_referer('bulk-edit-variations', 'security'); // Check permissions again and make sure we have what we need if (!current_user_can('edit_products') || empty($_POST['product_id']) || empty($_POST['bulk_action'])) { die(-1); } $product_id = absint($_POST['product_id']); $bulk_action = wc_clean($_POST['bulk_action']); $data = !empty($_POST['data']) ? array_map('wc_clean', $_POST['data']) : array(); $variations = array(); if (apply_filters('woocommerce_bulk_edit_variations_need_children', true)) { $variations = get_posts(array('post_parent' => $product_id, 'posts_per_page' => -1, 'post_type' => 'product_variation', 'fields' => 'ids', 'post_status' => array('publish', 'private'))); } if (method_exists(__CLASS__, "variation_bulk_action_{$bulk_action}")) { call_user_func(array(__CLASS__, "variation_bulk_action_{$bulk_action}"), $variations, $data); } else { do_action('woocommerce_bulk_edit_variations_default', $bulk_action, $data, $product_id, $variations); } do_action('woocommerce_bulk_edit_variations', $bulk_action, $data, $product_id, $variations); // Sync and update transients WC_Product_Variable::sync($product_id); wc_delete_product_transients($product_id); die; } } WC_AJAX::init();