我需要能夠有條件地將產品的一個添加到WooCommerce訂單/購物車中,如果購物車中的任何商品均來自一個特定的類別。 這是我嘗試過的代碼,但它鎖定了結帳和購物車頁面,返回沒有woocommerce信息,或任何後(沒有頁腳,沒有額外的頁面元素等....只是一切,直到WooCommerce數據前端,之後有一個大的空白空間)。請,如果有人能指出我正確的方向,它將非常感激!如果其他購物車商品屬於特定類別,請將產品添加到woocommerce購物車
下面是我在我functions.php文件:
/**
* Checks the cart to verify whether or not a product from a Category is in the cart
* @param $category Accepts the Product Category Name, ID, Slug or array of them
* @return bool
*/
function qualifies_basedon_product_category($category) {
foreach(WC()->cart->cart_contents as $key => $product_in_cart) {
if(has_term($category, 'fee', get_id_from_product($product_in_cart, false))) {
return true;
}
}
// Return false in case anything fails
return false;
}
/**
* Adds a specific product to the cart
* @param $product_id Product to be added to the cart
*/
function add_incentive_to_cart($product_id) {
// Check the cart for this product
$cart_id = WC()->cart->generate_cart_id($product_id);
$prod_in_cart = WC()->cart->find_product_in_cart($cart_id);
// Add the product only if it's not in the cart already
if(! $prod_in_cart) {
WC()->cart->add_to_cart($product_id);
}
}
add_action('woocommerce_check_cart_items', 'qualifies_for_incentive');
function qualifies_for_incentive() {
// Incentive product
$incentive_product_id = 506;
if(qualifies_basedon_product_category('fee')) {
add_incentive_to_cart($incentive_product_id);
}
}
這與我試圖實現的'類似',但與產品,而不是費用.... http://stackoverflow.com/questions/26240591/add-a-fee-to-woocommerce-per-product-based-on-category 此外,在任何人建議之前,我已經購買了Woo Force Sells擴展,但問題就是它會爲該類別中的每個產品自動添加附加產品,而不僅僅是每個購物車一次......所以如果有另一種方法使用強制銷售來處理它,我也會對此敞開......只是需要以便能夠將售出物品的物品在購物車中出現的次數限制爲一次。 –