WooCommerce最小订单 - 用户帐户的例外情况

时间:2015-01-29 17:32:27

标签: wordpress woocommerce

我正在为客户建立批发电子商务网站。他们需要至少300美元的订单才能完成销售。客户必须登录才能访问网站并下订单。

有一个客户需要删除最低订单。所以他/她可以成功下订单300美元以下。

以下是我用来生成最小订单的当前代码:

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

    function wc_minimum_order_amount() {
        // Set this variable to specify a minimum order value
        $minimum = 354.93;

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

            if( is_cart() ) {

                wc_print_notice( 
                    sprintf( 'Votre commande doit être au minimum de 300$ afin de se qualifier pour les prix de distributeur et pour compléter votre commande.' , 
                        woocommerce_price( $minimum ), 
                        woocommerce_price( WC()->cart->total )
                    ), 'error' 
                );

            } else {

                wc_add_notice( 
                    sprintf( 'Votre commande doit être au minimum de 300$ afin de se qualifier pour les prix de distributeur et pour compléter votre commande.' , 
                        woocommerce_price( $minimum ), 
                        woocommerce_price( WC()->cart->total )
                    ), 'error' 
                );

            }
        }

    }

我无法弄清楚如何调整客户帐户,以便上述代码在浏览网站时被丢弃。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

对于其他未来客户来说,这是最简单但最不可扩展的:

if ( WC()->cart->total < $minimum && get_current_user_id() != 999 )

其中999是您希望放弃最低300美元的客户的用户ID。

您可以创建自定义功能,并使用角色管理器类型的插件为所有最低不适用的客户分配特殊角色:

if ( WC()->cart->total < $minimum && ! current_user_can('ignore_cart_minimum' ) )

修改

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

    function wc_minimum_order_amount() {
        // Set this variable to specify a minimum order value
        $minimum = 354.93;

        if ( WC()->cart->total < $minimum && get_current_user_id() != 999 ) {

            if( is_cart() ) {

                wc_print_notice( 
                    sprintf( 'Votre commande doit être au minimum de 300$ afin de se qualifier pour les prix de distributeur et pour compléter votre commande.' , 
                        woocommerce_price( $minimum ), 
                        woocommerce_price( WC()->cart->total )
                    ), 'error' 
                );

            } else {

                wc_add_notice( 
                    sprintf( 'Votre commande doit être au minimum de 300$ afin de se qualifier pour les prix de distributeur et pour compléter votre commande.' , 
                        woocommerce_price( $minimum ), 
                        woocommerce_price( WC()->cart->total )
                    ), 'error' 
                );

            }
        }

    }