Создание нового продукта с двумя вариантами и добавление выбранного в корзину.
Желаемый результат: Форма выбирает между вариантами и добавляет соответствующий вариант в корзину.
Текущий результат : Второй вариант добавляется в корзину независимо от того, какой из них выбран
Примечания: Добавление variation_id
должно быть довольно простым, но так как идентификатор варианта еще не создан, мне нужен способ связать вариант термины в форме с недавно назначенными variation_id
<form name="new-prod" method="post" action="">
<input type="radio" name="attribute_pa_size" value="11oz" id="pa_size_v_11oz">
<input type="radio" name="attribute_pa_size" value="15oz" checked="checked" id="pa_size">
PHP:
$post_size = $_POST['attribute_pa_size'];
Создано несколько вариантов:
Первый вариант
$parent_id = $product_ID;
$variation = array(
'post_title' => 'Product #' . $parent_id . ' Variation',
'post_content' => '',
'post_status' => 'publish',
'post_parent' => $parent_id,
'post_type' => 'product_variation'
);
$variation_id = wp_insert_post( $variation );
update_post_meta( $variation_id, '_regular_price', 21.95 );
update_post_meta( $variation_id, '_price', 21.95 );
update_post_meta( $variation_id, 'attribute_' . $mythis->size_tax, '15oz' );
WC_Product_Variable::sync( $parent_id );
Второй вариант
$parent_id = $product_ID;
$variation = array(
'post_title' => 'Product #' . $parent_id . ' Variation',
'post_content' => '',
'post_status' => 'publish',
'post_parent' => $parent_id,
'post_type' => 'product_variation'
);
$variation_id = wp_insert_post( $variation );
update_post_meta( $variation_id, '_regular_price', 18.95 );
update_post_meta( $variation_id, '_price', 18.95 );
update_post_meta( $variation_id, 'attribute_' . $mythis->size_tax, '11oz' );
WC_Product_Variable::sync( $parent_id );
Добавить вариант в корзину
$quantity = 1;
$variation = $post_size;
$woocommerce->cart->add_to_cart( $product_ID, $quantity, $variation_id, $variation );