woocommerce и зарегистрирован ли пользователь(), если не перенаправлен на домашнюю страницу


В настоящее время я использую woocommerce и хотел бы перенаправить ни одного зарегистрированного пользователя на домашнюю страницу, однако у меня возникли небольшие проблемы с определением того, где я должен это реализовать

Я провел исследование и определил, что с помощью функции is_user_logged_in() я могу видеть, вошел ли пользователь в систему.

Я попытался реализовать в woocommerce/woocommerce-functions.php

// When default permalinks are enabled, redirect shop page to post type archive url
    if (is_user_logged_in() && isset($_GET['page_id']) && $_GET['page_id'] > 0 && get_option( 'permalink_structure' )=="" && $_GET['page_id'] ==     woocommerce_get_page_id('shop') ) :
        wp_safe_redirect( get_post_type_archive_link('product') );
        exit;
    endif;

Но это все равно позволяет странице быть видимой

Author: bugz, 2012-09-27

3 answers

Вы захотите вставить свой код в верхней части шаблонов страниц для страниц Woo, на которые вы хотите, чтобы перенаправление повлияло, а не на файл функций. Так, например, если вы хотите перенаправлять пользователей, когда они пытаются получить доступ к отдельной странице продукта, вы можете поместить ее в верхней части плагинов ->woocommerce ->шаблоны ->single-product.php страница.

При редактировании шаблонов, хотя я бы рекомендовал сделать копию и поместить ее в каталог вашей темы, чтобы, когда вы обновления это не отменит никаких внесенных вами изменений. Итак, для примера, который я привел выше (применительно к моей теме). Я бы скопировал single-product.php и поместите его в файл темы->агентство, а затем внесите изменения в этот файл, там. Затем ваша тема всегда будет использовать этот файл перед файлом шаблона Woo.

 0
Author: Kyle, 2012-09-27 12:29:13

Во-первых, никогда не редактируйте плагины других пользователей или основные файлы wordpress.

Также используйте фигурные скобки вместо красивого форматирования, так как красивое форматирование нарушает выделение кода IDE, сопоставление скобок, проверку синтаксиса и другие удобные инструменты

Итак, введите этот код:

// When default permalinks are enabled, redirect shop page to post type archive url
if (is_user_logged_in() && isset($_GET['page_id']) && $_GET['page_id'] > 0 && get_option( 'permalink_structure' )=="" && $_GET['page_id'] ==     woocommerce_get_page_id('shop') ) {
    wp_redirect( get_post_type_archive_link('product') );
    die();
}

Либо в:

  • вершина functions.php
  • Специальный плагин
  • При вызове крючка инициализации
 1
Author: Tom J Nowell, 2012-09-27 12:59:44

Используйте код functions.php:

add_filter('woocommerce_login_redirect', 'wc_login_redirect');

function wc_login_redirect( $redirect_to ) {
     $redirect_to = 'https://www.example.com/';
     return $redirect_to;
}
 0
Author: Dhirendra Kumawat, 2015-07-27 09:51:30