问题描述
我有一个网站使用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页面,并将其重定向到我们的主页。
以下是笔者,自己写的一个,中间做过多次尝试,注释掉的部分客户忽略,当然也可以作为参考,由于我个人比较懒,所以总喜欢把类似的东西写在旁边,以方便后期参考。
function wpse_131562_redirect() { if ( ! is_user_logged_in() && (is_shop() || is_cart() || is_checkout()) ) { // feel free to customize the following line to suit your needs $url='http://www.habotalk.com'; // $url= home_url(add_query_arg(array())); // $url= home_url(add_query_arg(array())); // echo "<script>alert('you haven't login);location.href='".$_SERVER["HTTP_REFERER"]."';</script>"; // wp_safe_redirect( $url,301 ); wp_redirect( site_url('my-account/'),301 ); exit; } } add_action('template_redirect', 'wpse_131562_redirect');
次佳解决方案
我们也可以让这个,自定义跳转到指定的路径。
wp_redirect( site_url('my-account/'),301 );
因此如果未登录或注册,则用户将重定向到”My-Account”页面。
更多可以参考wordpress这里
未经允许不得转载:哈勃私语 » wordpress只能让登录用户访问woocommerce页面
本文共1193个字 创建时间:2017年11月9日16:11