基于Woocommerce中用户角色的运输折扣

时间:2018-11-19 18:00:14

标签: php wordpress woocommerce cart discount

我尝试为functions.php实现一个代码片段,该代码片段将适用    需要“管理员”角色时,送货费可享受50%的折扣    隐藏它可以免费送货。

它没有我想要的。我在做什么错了?

add_action( 'woocommerce_cart_calculate_fees','discount_based_on_user_role_and_payment', 20, 1 );
function discount_based_on_user_role_and_payment( $cart) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
    return;
    $discount = WC()->cart->shipping_total/2;
if ( $discount >0 && !current_user_can('administrator') )
    return;
    $cart->add_fee( sprintf( __("Chiết khấu", "woocommerce")), -$discount, true );
}

有人可以帮助完成此操作吗?还是至少指向正确的方向?

1 个答案:

答案 0 :(得分:1)

如果您在添加费用之前添加return;,则不会发生任何事情。 而是使用此更改不大的代码版本:

add_action( 'woocommerce_cart_calculate_fees','discount_based_on_user_role_and_payment', 20, 1 );
function discount_based_on_user_role_and_payment( $cart) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return; 

    $discount = $cart->shipping_total / 2;

    if ( $discount > 0 && current_user_can('administrator') ) {
        $cart->add_fee( sprintf( __("Chiết khấu", "woocommerce")), -$discount, true );
    }
}

代码进入您的活动子主题(活动主题)的function.php文件中。经过测试并可以正常工作。