【问题标题】:Automatically apply discount to user role if no coupon is applied in Woocommerce如果 Woocommerce 中未应用优惠券,则自动将折扣应用于用户角色
【发布时间】:2020-02-07 05:33:29
【问题描述】:

我在下面有此代码,但我希望它仅在用户未使用其他代码时才有效,并且如果用户使用其他优惠券,则禁用此优惠券。

根据"Apply a discount for a specific user role in Woocommerce"的回答码,我一直在研究如何查看是否有优惠券,但无法弄清楚。

// Applying conditionally a discount for a specific user role
add_action( 'woocommerce_cart_calculate_fees', 'discount_based_on_user_role', 20, 1 );
function discount_based_on_user_role( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return; // Exit

    // Only for 'company' user role
    if ( ! current_user_can('affiliate') )
        return; // Exit

    // Only for 'company' user role
    if ( ! current_user_can('affiliate') )
        return; // Exit

    // HERE define the percentage discount
    $percentage = 15;

    $discount = $cart->get_subtotal() * $percentage / 100;
    // Applying discount
    $cart->add_fee( sprintf( __("Affiliate Discount (%s)", "woocommerce"), $percentage . '%'), -$discount, true );
}

感谢任何帮助。

【问题讨论】:

    标签: php wordpress woocommerce cart discount


    【解决方案1】:

    如果购物车中没有应用的优惠券,请尝试以下操作,以根据特定用户角色设置自定义折扣:

    // Applying conditionally a discount for a specific user role and no applied coupons
    add_action( 'woocommerce_cart_calculate_fees', 'discount_based_on_user_role', 20, 1 );
    function discount_based_on_user_role( $cart ) {
        if ( is_admin() && ! defined( 'DOING_AJAX' ) )
            return; // Exit
    
        // Only for 'affiliate' user role
        if ( ! current_user_can('affiliate') )
            return; // Exit
    
        // Only if there is no applied coupons in cart
        if ( ! empty( $cart->get_applied_coupons() ) )
            return; // Exit
    
        // HERE define the percentage discount
        $percentage = 15;
    
        $discount = $cart->get_subtotal() * $percentage / 100; // Calculation
    
        // Applying discount
        $cart->add_fee( sprintf( __("Affiliate Discount (%s)", "woocommerce"), $percentage . '%'), -$discount, true );
    }
    

    代码在您的活动子主题(或活动主题)的functions.php 文件中。经过测试并且可以工作。

    【讨论】:

      猜你喜欢
      • 2021-03-18
      • 1970-01-01
      • 2015-09-08
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      • 2012-12-27
      • 2018-03-24
      • 2020-01-19
      相关资源
      最近更新 更多