Скрытие вкладок «A» и «B» для гостевых пользователей, скрытие вкладок «C» и «D» для вошедших в систему пользователей.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Скрытие вкладок «A» и «B» для гостевых пользователей, скрытие вкладок «C» и «D» для вошедших в систему пользователей.

Сообщение Anonymous »

У меня есть четыре вкладки для отдельных продуктов в woocommerce. Для простоты я назову их вкладками A, B, C, D.
Когда пользователи не вошли в систему, мне нужно показать вкладки «C» и «D», но скрыть вкладки «A» и «B».
Когда пользователи вошли в систему, мне нужно показать вкладки «A» и «B», но скрыть вкладки «C» и "D".
У меня есть PHP-код, который я подключил к дочерней теме функций. Я считаю, что они противоречат друг другу. Я могу отображать вкладки «A» и «B» для вошедших в систему клиентов, но тогда вкладки для не вошедших в систему клиентов отсутствуют. Я могу получить вкладки «C» и «D» для не вошедших в систему клиентов, но тогда для вошедших в систему клиентов отображаются все четыре вкладки. Вот фрагменты, которые я использую.

Код: Выделить всё

/**
* hide product description and suggested retail tabs when not logged in
*/
add_filter( 'woocommerce_product_tabs', 'customize_product_tabs', 100 );
function customize_product_tabs( $tabs ) {

if ( ! is_user_logged_in() ) {
unset( $tabs['description'] );
unset( $tabs['suggested-retail'] );

// remove the description tab
}
return $tabs;
}

/**
* Hides description-log-in and suggested-retail-log-in tabs  when logged in */

add_filter( 'woocommerce_product_tabs', 'woo_remove_product_tabs', 98 );
function woo_remove_product_tabs( $tabs ) {

if ($current_user->ID == '')  {
unset( $tabs['description-log-in'] );
unset( $tabs['suggested-retail-log-in'] );
} // remove the description tab

return $tabs;
}

Я пробовал использовать тот или иной вариант с директивой else, но обычно при сохранении возникает ошибка или это приводит к тому, что вошедшие в систему пользователи видят только вкладки «A» и «Б», но незалогинившиеся пользователи ничего не видят. Ниже приведен пример:

Код: Выделить всё

add_filter( 'woocommerce_product_tabs', 'customize_product_tabs', 100 );
function customize_product_tabs( $tabs ) {

if ( ! is_user_logged_in() ) {
unset( $tabs['description'] );
unset( $tabs['suggested-retail'] );
else
unset( $tabs['description-log-in'] );
unset( $tabs['suggested-retail-log-in'] );

// remove the description tab
}
return $tabs;
}
Если я взбираю невозможное дерево, альтернативным решением было бы иметь только вкладки «A» и «B», со всем текстом, видимым для вошедших в систему пользователей, но для пользователям, не вошедшим в систему, сами вкладки должны оставаться видимыми, но панели вкладок ниже, где содержится подробный текст, должны быть скрыты.
Спасибо за любую помощь, которую вы оказываете. способен дать.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ged-in-use
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»