0

顧客が注文に特定の製品カテゴリの十分な量 (価格ではなく数量) を追加していない場合、回避するためにさらに追加する必要があるというメッセージが表示される if ステートメントを作成できるかどうか疑問に思っています。追加料金。ここに記載されている最小注文額のスニペットの行に沿って何かを考えています:

add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );
    function wc_minimum_order_amount() {
        global $woocommerce;
        $minimum = 50;
    if ( $woocommerce->cart->total() < $minimum ) {
        $woocommerce->add_error( sprintf( 'You must have an order with a minimum of %s to place your order.' , $minimum ) );
    }
}

どんな助けでも大歓迎です。

4

2 に答える 2

2

これはwoocommerce_checkout_processwoocommerce_before_cart Woocommerce Hooksを使用して行うことができます。

したがって、このコードをテーマのfunctions.phpファイルに追加します( Name Your category文字列を変更します)。

add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );
add_action( 'woocommerce_before_cart' , 'wc_minimum_order_amount' );

function wc_minimum_order_amount() {

    $minimum = 50; //Qty product

    if ( WC()->cart->cart_contents_count < $minimum ) {

        $draught_links = array();

        foreach(WC()->cart->get_cart() as $cart_item_key => $values ) {

            $_product = $values['data'];

            $terms = get_the_terms( $_product->id, 'product_cat' );

            foreach ($terms as $term) {
                $draught_links[] = $term->name;
            }   

        }

        if (in_array("Name Your category", $draught_links)){
            $on_draught = true;
        }else{
            $on_draught = false;
        }

        if( is_cart() ) {

            if($on_draught){

                wc_print_notice( 
                    sprintf( 'You must have an order with a minimum of %s to place your order, your current order total is %s.' , 
                         $minimum , 
                         WC()->cart->cart_contents_count
                    ), 'error' 
                );

            }

        } else {

            if($on_draught){

                wc_add_notice( 
                    sprintf( 'You must have an order with a minimum of %s to place your order, your current order total is %s.' , 
                        $minimum , 
                        WC()->cart->cart_contents_count
                    ), 'error' 
                );

            }

        }
    }

}
于 2014-09-24T21:25:05.953 に答える
0

WooCommerce ドキュメントから

public float $cart_contents_count - カート項目の合計数。

したがって、これが必要なことを行うのは当然のことです。

add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );
function wc_minimum_order_amount() {
    global $woocommerce;
    $minimum = 50;
    if ( $woocommerce->cart->cart_contents_count < $minimum ) {
        $woocommerce->add_error( sprintf( 'You must have an order with a minimum of %s to place your order.' , $minimum ) );
    }
}
于 2013-10-09T03:13:11.737 に答える