【发布时间】:2016-03-12 08:59:35
【问题描述】:
在提交自定义添加到购物车表单后,我正在尝试使用 wp_loaded 操作将产品添加到 woocommerce 购物车。
add_action( 'wp_loaded', 'custom_process_form' );
function custom_process_form(){
global $woocommerce;
if(isset($_POST["addcoupon"])){
foreach($_POST as $key=>$value){
if($key=="addcoupon"){
continue;
}
$valarr=explode("_",$key);
if ($valarr[0]=="couponid"){
$woocommerce->cart->add_to_cart($valarr[1],1);
$count++;
}
}
}
}
它工作正常,除了第一次加载时,购物车认为我添加了 2 个产品而不是 1 个。由于某种原因,它运行了两次 WC_Cart->calculate_totals() 并且 $this->cart_contents_count 没有重置为零,所以数量增加了两次。 (当我重新加载页面时,购物车显示正确的商品数量)
使用自定义表单添加产品的正确方法是什么?我找不到任何这样的例子。我是否使用了错误的操作?
【问题讨论】:
标签: php wordpress woocommerce cart