2015-07-10 2 views
0

На странице WooCommerce Моя учетная запись Я пытаюсь скрыть пару разделов на основе роли пользователя.На странице WooCommerce Моя учетная запись отображает раздел «Мои адреса» на основе определенной роли пользователя

На данный момент всем людям, которые регистрируются непосредственно в регистрационной форме WooCommerce, назначается роль пользователя «Клиент». Тем не менее, только пользователи с ролью «Работодатель» действительно могут совершать покупки ... так эффективно я хочу скрыть раздел «Мои адреса» пользователям, которые являются «Клиентами».

Любые идеи, если я могу сделать это с помощью функции? Miro

ответ

0

Это легко можно использовать с шаблонами. Добавить эту функцию в файле functions.php так что вы можете использовать его:

function isEmployer(){ 
    $currentUser = wp_get_current_user(); 
    return in_array('employer', $currentUser->roles); 
} 

захватить my-account.php шаблон из woocommerce > templates > myaccount и скопировать в папку WooCommerce вашей темы (YOURTHEME > woocommerce > myaccount).

Оттуда перейдите к строке 36. ВОТ где адрес загружается в

Оберните адрес с PHP, если заявление следующим образом:.

<?php if(isEmployer()){ 
     wc_get_template('myaccount/my-address.php') 
    }?> 
+0

Спасибо. Можно ли это сделать только через файл функций? Я спрашиваю, потому что мне нужно применить один и тот же сценарий к нескольким разделам на моей странице учетной записи ... и не хочу терять какие-либо обновления темы тоже ... что я буду, если я дублирую файл. – Miro

+0

Если вы используете дочернюю тему (которую вы должны использовать), вы не потеряете обновление, если переопределение шаблона Woo выполняется в папке шаблона темы. Я не уверен, возможно ли это с помощью файла функций, поскольку это буквально шаблонные части, которые нужно скрывать, и они не являются крючками. – Aibrean

+0

Хорошо, я понимаю. Я использую дочернюю тему, но я также использую плагин для подписки woo commerce, а это значит, что мне нужно также дублировать этот файл шаблона ... что означает, что любые обновления этого файла шаблона останутся «не обновленными». – Miro

0

Вы должны переопределить шаблон my-account.php в вашей теме, а затем заверните вызов шаблону адреса в некоторой условной логике. В частности, current_user_can(), который проверяет возможности WordPress.

<?php 
if(current_user_can('place_order')){ 
    wc_get_template('myaccount/my-address.php'); 
} ?> 

В идеале, вы могли бы сделать это на основе возможностей, что роль работодателя, что роль клиента не делает, но в худшем случае, вы могли бы использовать имя роли а-ля current_user_can('employer')

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