wordpress只能让登录用户访问woocommerce页面

问题描述

我有一个网站使用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   

分享到:更多 ()