通过Ajax向WooCommerce添加自定义油漆颜色产品时重复添加失效的问题求助
通过Ajax向WooCommerce添加自定义油漆颜色产品时重复添加失效的问题求助
我正在搭建一个油漆商店,客户可以选择RAL颜色并设置购买的升数。价格是根据颜色配方计算的,目前第一次添加产品时,价格和产品描述都能正常显示,但当我尝试选择另一种颜色添加到购物车时,新的产品根本加不进去。
下面是我目前写的自定义代码:
add_filter('woocommerce_add_cart_item' , 'set_woo_prices'); add_filter('woocommerce_get_cart_item_from_session', 'set_session_prices', 10 , 3); function set_woo_prices($woo_data) { if (empty($_POST['kforwselectcolorprice'])) { return $woo_data; } $woo_data['my_prod_name'] = $_POST['kforwselectcolorname']; foreach ($_POST['kforwoo_variation_quantity'] as $prodVarName => $prodVarQty) { if (empty($prodVarQty)) { continue; } $woo_data['my_prod_name'] .= sprintf("<br/> %s x %d", $prodVarName, $prodVarQty); } $woo_data['my_price'] = $_POST['kforwselectcolorprice']; $woo_data['data']->set_price($_POST['kforwselectcolorprice']); $woo_data['data']->set_name($woo_data['my_prod_name']); return $woo_data; } function set_session_prices($woo_data, $values, $key) { if (empty($woo_data['my_price']) || empty($woo_data['my_prod_name'])) { return $woo_data; } $woo_data['data']->set_price($woo_data['my_price']); $woo_data['data']->set_name($woo_data['my_prod_name']); return $woo_data; }
后续排查更新:
- 我发现只有第一次添加产品时
woocommerce_add_cart_item钩子会被调用,之后再添加其他颜色的产品时,这个钩子根本不会执行。 - 补充说明:我使用的插件是Custom Paint Variation for WooCommerce
备注:内容来源于stack exchange,提问作者Yasen
相关产品推荐
相关产品推荐

