当产品 A 添加到购物车时,对于特定产品,也将产品 B 添加到购物车 5 次
When Product A is added to cart, then also add Product B to cart in 5 times for specific products
我遇到了一个问题。此功能工作正常。但是现在我想在购物车中添加此产品 454545
时,还需要在购物车中添加此 263654
产品五次。如果我在购物车中添加 regular/other 件产品,则需要像往常一样一次性将此产品 263654
添加到购物车中。
add_action('woocommerce_add_to_cart', 'add_product_to_cart');
function add_product_to_cart() {
if ( !is_admin() && !is_cart() && !is_checkout()) {
$product_id = 263654; //replace with your own product id
$specific_products = 454545;
$excloud_product = 380978;
$excloud_product1 = 446740;
$found = false;
$items_count = 0;
//check if product already in cart
if ( sizeof( WC()->cart->get_cart() ) > 0 ) {
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];
if ( $_product->get_id() == $product_id || $_product->get_id() == $excloud_product ){
$product_key = $cart_item_key;
$product_qty = $cart_item['quantity'];
$found = true;
}else {
$items_count++;
}
}
// if product not found, add it
if ( ! $found ){
WC()->cart->add_to_cart( $product_id, $items_count );
}else{
WC()->cart->set_quantity( $product_key, $items_count );
}
}else{
// if no products in cart, add it
WC()->cart->add_to_cart( $product_id );
}
}
}
我认为这应该可行。
add_action('woocommerce_add_to_cart', 'bks_add_product_to_cart');
function bks_add_product_to_cart()
{
if (!is_admin() && !is_cart() && !is_checkout()) {
$product_id = 263654; //replace with your own product id
$excloud_product = 380978;
$other_five_products = array(12321, 23123, 213123, 21323, 123213);
$found = false;
$items_count = 0;
//check if product already in cart
if (sizeof(WC()->cart->get_cart()) > 0) {
foreach (WC()->cart->get_cart() as $cart_item_key => $values) {
$_product = $values['data'];
if ($_product->get_id() == $product_id || $_product->get_id() == $excloud_product) {
$product_key = $cart_item_key;
$found = true;
} else {
$items_count++;
}
}
// if product not found, add it
if (!$found) {
WC()->cart->add_to_cart($product_id, $items_count);
////////// ADD IT WHEN NOT FOUND //////////////////////
foreach ($other_five_products as $prod) {
WC()->cart->add_to_cart($prod, 1);
}
} else {
WC()->cart->set_quantity($product_key, $items_count);
}
} else {
// if no products in cart, add it
WC()->cart->add_to_cart($product_id);
////////// ADD IT IF NO PRODUCT IS ADDED //////////////////////
foreach ($other_five_products as $prod) {
WC()->cart->add_to_cart($prod, 1);
}
}
}
}
我在修改的地方添加了评论。这两个是计算后将产品添加到购物车的地方。我刚刚为要添加的产品数组添加了 for 循环 $other_five_products
并添加了它们。
我遇到了一个问题。此功能工作正常。但是现在我想在购物车中添加此产品 454545
时,还需要在购物车中添加此 263654
产品五次。如果我在购物车中添加 regular/other 件产品,则需要像往常一样一次性将此产品 263654
添加到购物车中。
add_action('woocommerce_add_to_cart', 'add_product_to_cart');
function add_product_to_cart() {
if ( !is_admin() && !is_cart() && !is_checkout()) {
$product_id = 263654; //replace with your own product id
$specific_products = 454545;
$excloud_product = 380978;
$excloud_product1 = 446740;
$found = false;
$items_count = 0;
//check if product already in cart
if ( sizeof( WC()->cart->get_cart() ) > 0 ) {
foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];
if ( $_product->get_id() == $product_id || $_product->get_id() == $excloud_product ){
$product_key = $cart_item_key;
$product_qty = $cart_item['quantity'];
$found = true;
}else {
$items_count++;
}
}
// if product not found, add it
if ( ! $found ){
WC()->cart->add_to_cart( $product_id, $items_count );
}else{
WC()->cart->set_quantity( $product_key, $items_count );
}
}else{
// if no products in cart, add it
WC()->cart->add_to_cart( $product_id );
}
}
}
我认为这应该可行。
add_action('woocommerce_add_to_cart', 'bks_add_product_to_cart');
function bks_add_product_to_cart()
{
if (!is_admin() && !is_cart() && !is_checkout()) {
$product_id = 263654; //replace with your own product id
$excloud_product = 380978;
$other_five_products = array(12321, 23123, 213123, 21323, 123213);
$found = false;
$items_count = 0;
//check if product already in cart
if (sizeof(WC()->cart->get_cart()) > 0) {
foreach (WC()->cart->get_cart() as $cart_item_key => $values) {
$_product = $values['data'];
if ($_product->get_id() == $product_id || $_product->get_id() == $excloud_product) {
$product_key = $cart_item_key;
$found = true;
} else {
$items_count++;
}
}
// if product not found, add it
if (!$found) {
WC()->cart->add_to_cart($product_id, $items_count);
////////// ADD IT WHEN NOT FOUND //////////////////////
foreach ($other_five_products as $prod) {
WC()->cart->add_to_cart($prod, 1);
}
} else {
WC()->cart->set_quantity($product_key, $items_count);
}
} else {
// if no products in cart, add it
WC()->cart->add_to_cart($product_id);
////////// ADD IT IF NO PRODUCT IS ADDED //////////////////////
foreach ($other_five_products as $prod) {
WC()->cart->add_to_cart($prod, 1);
}
}
}
}
我在修改的地方添加了评论。这两个是计算后将产品添加到购物车的地方。我刚刚为要添加的产品数组添加了 for 循环 $other_five_products
并添加了它们。