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;
Но это все равно позволяет странице быть видимой
3 answers
Вы захотите вставить свой код в верхней части шаблонов страниц для страниц Woo, на которые вы хотите, чтобы перенаправление повлияло, а не на файл функций. Так, например, если вы хотите перенаправлять пользователей, когда они пытаются получить доступ к отдельной странице продукта, вы можете поместить ее в верхней части плагинов ->woocommerce ->шаблоны ->single-product.php страница.
При редактировании шаблонов, хотя я бы рекомендовал сделать копию и поместить ее в каталог вашей темы, чтобы, когда вы обновления это не отменит никаких внесенных вами изменений. Итак, для примера, который я привел выше (применительно к моей теме). Я бы скопировал single-product.php и поместите его в файл темы->агентство, а затем внесите изменения в этот файл, там. Затем ваша тема всегда будет использовать этот файл перед файлом шаблона Woo.
Во-первых, никогда не редактируйте плагины других пользователей или основные файлы 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
- Специальный плагин
- При вызове крючка инициализации
Используйте код 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;
}