当我将商品添加到购物车时,以下代码将检查商品是否已存在于购物车中,如果已存在,则从购物车中删除商品并再次添加商品但使用新数量。
add_filter( 'woocommerce_add_to_cart_validation', 'woo_custom_add_to_cart_before' );
function woo_custom_add_to_cart_before( $cart_item_data ) {
$cart = WC()->instance()->cart;
$id = $_POST['product_id'];
$cart_id = $cart->generate_cart_id($id);
$cart_item_id = $cart->find_product_in_cart($cart_id);
if($cart_item_id){
$cart->set_quantity($cart_item_id,0);
$cart->add_to_cart( $cart_item_id );
}
return true;
}
这很好用,但不允许我第二次添加该项目。例如,使用ajax添加项目,然后我调整数量并再次单击添加到购物车按钮但没有任何反应 - 购物车未更新,我必须刷新页面才能再次编辑相同的项目。如何自定义代码以多次编辑数量而无需刷新?