问题描述
我有一个网站使用 WordPress,和一个 e-commerce 使用 WooCommerce 。我希望我的商店 (及其所有的页面) 只能被登录的用户看到。
通过用户访问管理器插件,我已经拒绝访问商店页面,但是直接链接到产品等,即使用户没有登录,也可以访问该特定页面。
如果他们尝试访问 WooCommerce 页面,我如何可以将没有登录的用户重定向到另一个页面?
最佳解决方案
将其放在您的 functions.php
文件中:
function wpse_131562_redirect() {
if (
! is_user_logged_in()
&& (is_woocommerce() || is_cart() || is_checkout())
) {
// feel free to customize the following line to suit your needs
wp_redirect(home_url());
exit;
}
}
add_action('template_redirect', 'wpse_131562_redirect');
它有什么作用?我们检查一个 not-logged-in 用户是否想要看到一个 WooCommerce 页面,并将其重定向到我们的主页。
次佳解决方案
我只是改变了重定向
wp_redirect( site_url('my-account/') )
因此如果未登录或注册,则用户将重定向到”My-Account” 页面。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。