簡體   English   中英

WooCommerce 檢查購物車物品數量為 6 的倍數,從 12 開始

[英]WooCommerce check cart items quantity for multiples of 6 starting at 12

我有一個客戶希望銷售可以混合的產品(香檳),從 12 瓶到 6 瓶的倍數。 我在 wordpress 和 woocommerce 下工作。

我設法找到了一個 php 代碼,它允許制作倍數,但我希望它只適用於 12 種產品(而不是 1 種產品)。

您知道如何修改此代碼以實現它嗎? 我對 php 太陌生,無法找到解決方案。 由於混合,現有的插件不適合。

謝謝你的幫助。

示例:我買了 10 瓶 CHAMPAGNE1 + 5 瓶 CHAMPAGNE2 = 15 件商品 -> 一條錯誤消息說我需要 6 件商品的倍數。

但如果我購買 1 瓶 CHAMPAGNE1 + 1 瓶 CHAMPAGNE 2 = 2 件商品 -> 我可以付款,沒有錯誤消息。 不需要6的倍數

這是我找到並調整的代碼:

add_action( "woocommerce_check_cart_items", "woocommerce_check_cart_quantities" );
function woocommerce_check_cart_quantities() {
    $multiples = 6;
    $total_products > 0;
    foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
        $total_products += $values["quantity"];
    }
    if ( ( $total_products % $multiples ) > 0 )
        wc_add_notice( sprintf( __("Les commandes se font par lot de %s bouteilles. Merci de vérifier         votre panier. ", "woocommerce"), $multiples ), "error" );
}

更新

有一個小錯誤,您的代碼中缺少某些內容。 請嘗試以下操作:

add_action( "woocommerce_check_cart_items", "woocommerce_check_cart_quantities" );
function woocommerce_check_cart_quantities() {
    $multiples      = 6;
    $total_quantity = 0;
    $qty_threshold  = 12;

    foreach ( WC()->cart->get_cart() as => $item ) {
        $total_quantity += $item["quantity"];
    }

    if ( $total_quantity > $qty_threshold && ( $total_quantity % $multiples ) > 0 ) {
        wc_add_notice( sprintf( __("Orders are made in batches of %s bottles. Please check your cart. ", "woocommerce"), $multiples ), "error" );
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM