【发布时间】:2015-06-01 22:37:22
【问题描述】:
目前,如果商品进入客户的购物车,我会动态添加产品 + 优惠券。
// add Sufficiency Naked Calories to cart
add_action( 'wp_loaded', 'wc_custom_add_to_cart', 80 );
function wc_custom_add_to_cart( $product )
{
if (is_admin()) {
return;
}
$cart = WC()->cart->get_cart();
$products_to_check = array(10305, 10302, 10300, 10303, 10301);
$book = 10311;
$coupon_code = 'nutreincesufficiencyquiznakedcalories';
foreach ($cart as $cart_item_key => $values) {
$_product = $values['data'];
if ($_product->id == $book) return; // product has already been added
if (in_array($_product->id, $products_to_check)) {
WC()->cart->add_to_cart($book);
WC()->cart->add_discount($coupon_code);
break;
}
}
}
我想编写一个函数,如果数组$products_to_check 中的任何项目离开购物车,我可以删除$book。
到目前为止,我的尝试都没有成功
add_action( 'wp_loaded', 'wc_custom_add_to_cart', 80 );
function wc_custom_add_to_cart( $product )
{
if (is_admin()) {
return;
}
$cart = WC()->cart->get_cart();
$products_to_check = array(10305, 10302, 10300, 10303, 10301);
$book = 10311;
$coupon_code = 'nutreincesufficiencyquiznakedcalories';
foreach ($cart as $cart_item_key => $values) {
$_product = $values['data'];
if ($_product->id == $book) return; // product has already been added
if (in_array($_product->id, $products_to_check)) {
WC()->cart->add_to_cart($book);
WC()->cart->add_discount($coupon_code);
}
if (in_array($_product->id, $products_to_check)) {
return;
} else {
WC()->cart->remove_cart_item($book);
}
}
}
尝试 #2
add_action( 'wp_loaded', 'wc_custom_add_to_cart', 80 );
function wc_custom_add_to_cart( $product )
{
if (is_admin()) {
return;
}
$cart = WC()->cart->get_cart();
$nutreince_sufficiency = array(10305, 10302, 10300, 10303, 10301);
$book = 10310;
$nutincart = false;
$coupon_code = 'nutreincesufficiencyquiznakedcalories';
foreach ($cart as $cart_item_key => $values) {
$_product = $values['data'];
if (in_array($_product->id, $nutreince_sufficiency)) {
$nutincart = true;
break;
}
}
if ($nutincart) {
WC()->cart->add_to_cart($book);
WC()->cart->add_discount($coupon_code);
} else {
echo $_product->id;
WC()->cart->set_quantity($book, 0);
}
}
从购物车中取出产品,仍将书留在原处。
【问题讨论】:
标签: php wordpress woocommerce