WC_AJAX::add_variation
Add variation via ajax function.
Метод класса: WC_AJAX{}
Хуков нет.
Возвращает
null. Ничего (null).
Использование
$result = WC_AJAX::add_variation();
Код WC_AJAX::add_variation() WC AJAX::add variation WC 10.4.2
public static function add_variation() {
check_ajax_referer( 'add-variation', 'security' );
if ( ! current_user_can( 'edit_products' ) || ! isset( $_POST['post_id'], $_POST['loop'] ) ) {
wp_die( -1 );
}
global $post; // Set $post global so its available, like within the admin screens.
$product_id = intval( $_POST['post_id'] );
$post = get_post( $product_id ); // phpcs:ignore
$loop = intval( $_POST['loop'] );
$product_object = wc_get_product_object( ProductType::VARIABLE, $product_id ); // Forces type to variable in case product is unsaved.
$variation_object = wc_get_product_object( ProductType::VARIATION );
$variation_object->set_parent_id( $product_id );
$variation_object->set_attributes( array_fill_keys( array_map( 'sanitize_title', array_keys( $product_object->get_variation_attributes() ) ), '' ) );
$variation_object->save();
self::render_variation_html( $product_object, $variation_object, $loop, self::base_cost_or_null( $product_object ) );
wp_die();
}