Проверка страницы "отдельного товара" и проверка "роли" для перенаправления

13 июн. 2017 г., 14:17:06
Просмотры: 113K
Голосов: 10

После долгих поисков в интернете, я не нашел работающего решения.

Знаете ли вы, как можно сделать это в WooCommerce:

Пока я пробую следующий код:

function cm_redirect_users_by_role() {

    $current_user   = wp_get_current_user();
    $role_name      = $current_user->roles[0];

    if ( is_products_page() && is_single() ){
        if ( $role_name === 'customer' ) {
            wp_redirect( 'https://www.mysite.fr/shop/' );
        } // если покупатель
        else {
            wp_redirect( 'https://www.mysite.fr/' );
        } // иначе
    }
} // функция cm_redirect_users_by_role
add_action( 'admin_init', 'cm_redirect_users_by_role' );

Но это не работает :/ когда я нахожусь на странице отдельного товара, перенаправление не происходит.

0
Все ответы на вопрос 1
1
16

Вот рабочий результат. Я добавил условие is_product() для проверки, находится ли пользователь на странице отдельного товара. И изменил в add_action(): admin_init на wp

function cm_redirect_users_by_role() {

    $current_user   = wp_get_current_user();
    $role_name      = $current_user->roles[0];

    if ( is_product() ){
        if ( $role_name !== 'customer' && $role_name !== 'shop_manager' && $role_name !== 'dc_vendor') {
            wp_redirect( 'https://www.mysite.fr/' );
        } // if
    }
} // cm_redirect_users_by_role
add_action( 'wp', 'cm_redirect_users_by_role' );
13 июн. 2017 г. 16:56:16
Комментарии

Привет, пожалуйста, используйте один и тот же аккаунт для публикации, комментирования, ответов и других действий.

Johansson Johansson
14 июн. 2017 г. 02:54:01