当前位置: 首页 > 知识库问答 >
问题:

创建新产品变体并将选定的变体添加到购物车

那宏大
2023-03-14

创建具有两个变体的新产品,并将所选内容添加到购物车中

期望的结果:表单在变量之间进行选择,并将相应的变量添加到购物车中。

当前结果:第二个变化被添加到购物车,而不管选择哪个

注意:添加variation\u id应该非常简单,但是由于还没有创建variation id,我需要一种方法将表单中的变量项与新分配的variation\u 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  );

共有1个答案

席波娃
2023-03-14

对于第一个变体,将$variation\u id的所有引用替换为$elevenvariation\u id

然后将“将变体添加到购物车”块替换为以下内容,并从我的初始测试开始工作:

  $quantity     = 1;
  $variation    = $post_size;

$answer = $_POST['attribute_pa_size'];  
if ($answer == "15oz") {          
$woocommerce->cart->add_to_cart( $product_ID, $quantity, $variation_id, $variation  );   
}
    else {
        $woocommerce->cart->add_to_cart( $product_ID, $quantity, $elevenvariation_id, $variation  );
        }          
 类似资料:
  • 目标:在一个按钮点击中添加多个可变产品到购物车。 我试着将这段代码放入循环中,但它不起作用。 但是这种方法不能解决问题,因为我需要在一个按钮点击中添加几个产品变体。 所有的建议都将不胜感激。多谢了。

  • 如果有人能给我一个提示,表明我做错了什么,那将是一个很大的帮助。

  • 目标:将产品添加到购物车,尽管未选择变体,即删除/禁用变体字段的强制性质。 问题:Woocommerce绝对要求在添加到购物车之前选择所有的变体。 尝试过:在使用各种钩子添加到购物车之前,过滤/删除/禁用未选择的变体;,,, 我明白这就是WooCommerce的工作方式,以及为什么它这样工作的原因--尽管如此,我仍然需要一个解决办法。 我如何绕过Woocommerce的“选择所有变体”要求,以便即

  • 我正在重写AJAX函数,以便使用WooCommerce添加产品,这样我也可以将属性发送到购物车(这不是开箱即用的)。 在通过AJAX添加变量产品后,我按照更新WooCommerce购物车的说明进行了操作——这正是我想要的——但它并不完全有效。 当我注销时,一切都很好。但是,当我登录Wordpress时,PHP覆盖不起作用/被忽略。我没有收到任何错误,也没有向购物车添加任何产品。我尝试了许多不同的方

  • 请查看http://www.bestvapestore.com/product/goblin-juice-krazak/ 所有的变体都缺货了,但是正如您所看到的,当在它们之间切换时,它会简短地显示Add to Cart按钮--这是不可取的。我正在使用一个主题,但似乎找不到负责这一点的代码。 当没有选择变体,然后用户选择缺货变体时,也存在一个问题。它不太显示添加到购物车按钮,但它会在“缺货”消息后简

  • 我正在尝试为variations父产品创建一个单独的add to cart按钮。我正在使用以下方法访问产品数据: 谢谢你。