为了账号安全,请及时绑定邮箱和手机立即绑定

基于用户角色的 Woocommerce 最小订单总额

基于用户角色的 Woocommerce 最小订单总额

PHP
繁华开满天机 2023-07-01 17:27:41
我使用 Woocommerce最低订单金额中的代码片段来设置最低订单总额。但我想为每个用户角色设置不同的最小值。我有一些自定义用户角色:wholesale_prices、wholesale_vat_exc和distributor_prices。我想让代码根据每个角色具有不同最小金额的使用角色来工作。这是我的代码:// Minimum order totaladd_action( 'woocommerce_check_cart_items', 'wc_minimum_order_amount' ); function wc_minimum_order_amount() {    // Set this variable to specify a minimum order value    $minimum = 300;    if ( WC()->cart->subtotal < $minimum ) {        if( is_cart() ) {            wc_print_notice(                 sprintf( 'You must have an order with a minimum of %s to place your order, your current order total is %s.' ,                     wc_price( $minimum ),                     wc_price( WC()->cart->subtotal )                ), 'error'             );        } else {            wc_add_notice(                 sprintf( 'You must have an order with a minimum of %s to place your order, your current order total is %s.' ,                     wc_price( $minimum ),                     wc_price( WC()->cart->subtotal )                ), 'error'             );        }    }
查看完整描述

1 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

使用 WordPress 条件函数,current_user_can()例如:


add_action( 'woocommerce_check_cart_items', 'wc_minimum_order_amount' );

function wc_minimum_order_amount() {

    // minimum order value by user role

    if ( current_user_can('distributor_prices') )

        $minimum = 3000; 

    elseif ( current_user_can('wholesale_prices') )

        $minimum = 1000;

    elseif ( current_user_can('wholesale_vat_exc') )

        $minimum = 600;

    else 

        $minimum = 300; // default


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


        if( is_cart() ) {

            wc_print_notice( sprintf( 

                'You must have an order with a minimum of %s to place your order, your current order total is %s.' , 

                wc_price( $minimum ), 

                wc_price( WC()->cart->subtotal )

            ), 'error' );

        } else {

            wc_add_notice( sprintf( 

                'You must have an order with a minimum of %s to place your order, your current order total is %s.' , 

                wc_price( $minimum ), 

                wc_price( WC()->cart->subtotal )

            ), 'error' );

        }

    }

}

代码位于活动子主题(或活动主题)的functions.php 文件中。它应该有效。


查看完整回答
反对 回复 2023-07-01
  • 1 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信