我正试图在我的网站上做BOGO的情况是,当有人添加一个产品到购物车的数量5或有人在购物车页面增加一个特定的购物车项目数量大于5自动在购物车页面上,购物车项目将复制和添加作为购物车项目的小计0.00美元.下面是一个例子
Product | Quantity | Subtotal |
---|---|---|
T-Shirt | 5 | 10.00$ |
T-Shirt | 1 | FREE |
贝娄,我已经在我的插件页面上试过了.
add_filter('woocommerce_update_cart_action_cart_updated', 'on_action_cart_updated');
function on_action_cart_updated( $cart_updated ) {
if ( WC()->cart ) {
$cart_items = WC()->cart->get_cart();
foreach ( $cart_items as $key => $cart_item ) {
if ( $cart_item && 5 <= $cart_item['quantity'] ) {
$unique_key = md5( microtime().rand() );
$duplicate_item = $cart_item;
$duplicate_item['key'] = $unique_key;
$duplicate_item['quantity'] = 1;
$item_object = $cart_item['data'];
$item_object->add_meta_data('duplicated','yes');
$_product = wc_get_product( $cart_item );
error_log( $_product->get_type() );
// $product = new WC_Product_Simple();
// $product->set_title('')
// //$item_object->get_meta_data('duplicated');
//
// WC()->cart->add_to_cart( $cart_item['product_id'], 1, 0, 0, [], $unique_key);
WC()->cart->add_to_cart($cart_item['product_id'],1);
// WC()->cart->cart_contents[$unique_key] = $duplicate_item;
}
}
}
return $cart_updated;
}
此代码将增加旧购物车项目的数量,而不是将新的购物车项目添加为购物车列表上的重复旧购物车项目.