2015-06-05 2 views
0

Я ищу способ отключить поле купона для оптовиков в WooCommerce на страницах корзины и оформления заказа. Я использую настраиваемую тему и подключаюсь к WooCommerce Role Based Methods вместе с WooCommerce Wholesale Pricing. Я попробовал следующее в 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'); 

Вы также можете объединить обе функции в одно целое.

Смежные вопросы