2015-06-05 44 views
0

我正在尋找一種方法來禁止WooCommerce中的批發商在購物車和結帳頁面上使用優惠券字段。我正在使用自定義主題,並將WooCommerce基於角色的方法插件與WooCommerce批發價格一起使用。我在functions.php中試過以下內容:隱藏woocommerce中特定用戶角色(批發商)的優惠券字段

// hide coupon field on cart page for wholesale 
function hide_coupon_field_on_cart($enabled) { 

    if(! current_user_can('wholesale_customer') && is_cart()) { 
     $enabled = false; 
    } 

    return $enabled; 
} 
add_filter('woocommerce_coupons_enabled', 'hide_coupon_field_on_cart'); 

// hide coupon field on checkout page for wholesale 
function hide_coupon_field_on_checkout($enabled) { 

    if(! current_user_can('wholesale_customer') && is_checkout()) { 
     $enabled = false; 
    } 

    return $enabled; 
} 
add_filter('woocommerce_coupons_enabled', 'hide_coupon_field_on_checkout'); 

但是這並沒有奏效。我究竟做錯了什麼?

+0

這是你使用的插件嗎? http://codecanyon.net/item/woocommerce-wholesale-prices/5325378 – danyo

回答

0

試試這個:

$current_user = wp_get_current_user(); 
       if (!($current_user instanceof WP_User)) 
        return true; 
       $roles = $current_user->roles; 
       foreach($roles as $role){ 
        // wholesaler is your role name, not display name 
        if($role == "wholesaler"){ 
         $isWholesalers = 1; 
        } 
       } 
       if(!isset($isWholesalers)){ 
        return true; 
       } 
       if(is_cart()/*is_checkout*/) 
         return false; 
1

試試這個:

function woo_get_user_role() { 
    global $current_user; 
    $user_roles = $current_user->roles; 
    $user_role = array_shift($user_roles); 
    return $user_role; 
} 

// hide coupon field on cart page for wholesale 
function hide_coupon_field_on_cart($enabled) { 
    if(woo_get_user_role() =='wholesale_customer' && is_cart() || is_checkout()) { 
    $enabled = false; 
    } 
    return $enabled; 
} 
add_filter('woocommerce_coupons_enabled', 'hide_coupon_field_on_cart'); 

您也可以合併兩種功能於一體。

相關問題