如果您添加新產品,有一些方法可以清空購物車。
function wdm_empty_cart( $cart_item_data, $product_id, $variation_id )
{
global $woocommerce;
$woocommerce->cart->empty_cart();
}
但我想要的只是你添加相同的產品。所以添加 if ( $in_cart )可以完成作業,但我也不想清空整個購物車。
只想洗掉之前添加的相同產品并保留其他產品。
我的意思是覆寫。
uj5u.com熱心網友回復:
您可以使用woocommerce_add_to_cart_validation操作掛鉤并檢查購物車中已有的產品。代碼將進入您的活動主題functions.php 檔案。
add_filter('woocommerce_add_to_cart_validation', 'remove_cart_item_before_add_to_cart', 1, 3);
function remove_cart_item_before_add_to_cart($passed, $product_id, $quantity) {
$already_in_cart = false;
foreach( WC()->cart->get_cart() as $key => $item ){
// Check if the item is already is in cart.
if( $item['product_id'] == $product_id ){
$already_in_cart = true;
$existing_product_key = $key;
break;
}
}
if( $already_in_cart ){
WC()->cart->remove_cart_item($existing_product_key);
}
return $passed;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/336972.html
標籤:php WordPress的 求购
