Как ограничить пункт меню и его содержание для зарегистрированных пользователей в Woocommerce - PullRequest
0 голосов
/ 22 декабря 2018

На WordPress я настраиваю свой интернет-магазин с помощью плагина Woocommerce.У меня есть скрипт PHP, который генерирует таблицу цен.

Но на самом деле все это видят.

Как я могу добавить его в мое меню WordPress, и никто не сможет увидеть его, не войдя в систему?

1 Ответ

0 голосов
/ 22 декабря 2018

В вашем скрипте вы добавите is_user_logged_in() в оператор IF, например:

function my_php_script_table(){
    if( is_user_logged_in() ) {
        // The function code
    } else {
        return; // Exit
    }
} 

Теперь в вашем Wordpress-меню вы можете добавить дополнительные классы CSS, включающие «Классы css» на вкладке «Параметры экрана» , расположенной справа от страницы настроек «Меню».

enter image description here

После включения, в вашем пункте меню вы сможете установить собственный класс CSS:

enter image description here

Тогда вы сможете скрыть от незарегистрированных пользователей этот пункт менюиспользуя (здесь дополнительный класс hide_if_non_logged) :

add_action( 'wp_head', 'hide_if_non_logged_custom_inline_css', 500 );
function hide_if_non_logged_custom_inline_css() {
    if( ! is_user_logged_in() ) {
        ?><style>li.hide_if_non_logged { display: none !important;}</style><?php
    }
}

Код находится в файле function.php вашей активной дочерней темы (или активной темы).Протестировано и работает.


Вы даже можете добавить перенаправление, когда пользователь не вошел на страницу, где контент, который вы хотите скрыть от незарегистрированных пользователей (Вам нужно будет установить правильноеслаг страницы или идентификатор в коде) :

add_action( 'template_redirect', 'custom_unlogged_user_redirection' );
function custom_unlogged_user_redirection() {
    // Below set your correct page slug
    if ( ! is_user_logged_in() && is_page( 'pricing-table' ) ){
        // Redirect to logout URL
        wp_safe_redirect( get_home_url() );
        exit(); // Always exit
    }
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы).Проверено и работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...