WooCommerce 如何为未登录用户执行重定向
WooCommerce how to perform a redirection for not logged in users
我需要为我的 WordPress 网站上所有未登录的用户重定向。
所有这些都应该每次都被重定向到登录站点。这样没有登录的任何人都无法访问该站点。重要的是,我进行此重定向是因为我有一个 API 也需要访问该站点,如果我用 .htaccess
执行此操作 API 没有任何访问权限信息。
我使用了以下 PHP 代码:
add_action('template_redirect','woo_check_loggedin');
function woo_check_loggedin(){
if(!is_user_logged_in() && !is_page(lost-password) ){
wp_redirect("https://example.com/wp-login.php");
exit;
}
}
但这只在我转到“example.com”时有效。当我直接输入 URL "example.com/shop" 你仍然可以访问该站点。我怎样才能避免这种情况?
您可以使用 wp
全局变量的 request
属性 和 wp_login_url
函数。
add_action('template_redirect', 'woo_check_loggedin');
function woo_check_loggedin()
{
global $wp;
if (
!is_user_logged_in()
&&
'my-account/lost-password' != $wp->request
)
{
wp_safe_redirect(wp_login_url(get_permalink()));
exit;
}
}
这个答案已经在 woo 6.1
上测试过并且有效!
Woommerce 上重定向的相关答案:
我需要为我的 WordPress 网站上所有未登录的用户重定向。
所有这些都应该每次都被重定向到登录站点。这样没有登录的任何人都无法访问该站点。重要的是,我进行此重定向是因为我有一个 API 也需要访问该站点,如果我用 .htaccess
执行此操作 API 没有任何访问权限信息。
我使用了以下 PHP 代码:
add_action('template_redirect','woo_check_loggedin');
function woo_check_loggedin(){
if(!is_user_logged_in() && !is_page(lost-password) ){
wp_redirect("https://example.com/wp-login.php");
exit;
}
}
但这只在我转到“example.com”时有效。当我直接输入 URL "example.com/shop" 你仍然可以访问该站点。我怎样才能避免这种情况?
您可以使用 wp
全局变量的 request
属性 和 wp_login_url
函数。
add_action('template_redirect', 'woo_check_loggedin');
function woo_check_loggedin()
{
global $wp;
if (
!is_user_logged_in()
&&
'my-account/lost-password' != $wp->request
)
{
wp_safe_redirect(wp_login_url(get_permalink()));
exit;
}
}
这个答案已经在 woo 6.1
上测试过并且有效!
Woommerce 上重定向的相关答案: