【问题标题】:Wordpress redirection error with woocommercewoocommerce 的 Wordpress 重定向错误
【发布时间】:2018-07-27 21:07:12
【问题描述】:

我正在使用 wordpress 和 woocommerce 开发一个电子商店。商店只应向会员展示,会员产品除外。为此,我使用以下代码:

add_action( 'template_redirect', 'logged_in_only' );
add_action( 'template_redirect', 'membership_only',1,1);
function logged_in_only() {
    if ( ! is_user_logged_in() ) {
        if( !is_page( 20 ) && !is_page( 110 ) && !is_page( 35 ))
           auth_redirect();}
}
function membership_only() {
    if (!is_product(207)){
       wp_safe_redirect('website',301);
}
}

logged_in_only 的部分就像一个魅力。但是,如果您尝试访问它打开的另一个产品,则 members_only 仅在尝试访问公共页面时重定向。在“!is_product(207)”中,我已经尝试将“产品名称”、“产品 ID”以及它在此代码中的方式,并且总是发生相同的情况。

【问题讨论】:

  • 我假设产品 ID 207 是会员产品。非会员应该可以单独访问产品 ID 207,会员可以访问所有其他产品,对吗?
  • 准确。我正在使用 woocommerce 出售会员资格,所以他们需要访问这个

标签: php wordpress woocommerce


【解决方案1】:

试试这个。

add_action( 'template_redirect', 'restrict_products_pages' );
function restrict_products_pages() {
    if ( ! is_user_logged_in() ) { //add allowed pages & products here
        if( !is_page( 20 ) && !is_page( 110 ) && !is_page( 35 ) && !is_product(8))
           auth_redirect();
   }
   else { //add non-allowed pages & products here with ||
       if (is_product(8)) {
           wp_safe_redirect('website',301);
           exit;
       }
   }
}

【讨论】:

  • 更新了原始答案中的代码,检查并告诉我。
  • 然后我得到了重定向循环...但我发现错误在哪里,主题是在调用函数之前发送标题。所以我使用了tommcfarlin.com/wp_redirect-headers-already-sent 上的解决方案。但我真的很感谢你的帮助
猜你喜欢
  • 1970-01-01
  • 2017-12-22
  • 2017-01-12
  • 1970-01-01
  • 2012-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多