2014-02-09 38 views
0

我正在为想要将某些产品重定向到登录页面的客户端创建一个WordPress站点。我已经有成功的重定向整个店铺页面,等等。但是,我需要重定向只有某些产品....重定向如果用户没有登录woocommerce

这是我已经试过了,但它重定向每一个产品到登录页面:

if(!is_user_logged_in() && $product_id = 7854) { 
    wp_redirect('my-site-url'); 
} 

我也曾尝试:

if(!is_user_logged_in() && is_product(7854)) { 
    wp_redirect('my-site-url'); 
    exit; 
} 

,并再次,它会将所有的产品到登录页面。

我在这里错过了什么吗?想法将不胜感激。

+0

从哪里获取var $ product_id?产品ID实际上是后 - > ID;如果您使用的是单个帖子/产品,则可以使用。 除此之外,is_product - 查看单个产品时返回true。这并不意味着如果你使用它作为参数,这个函数不会有参数:) – rgdesign

回答

1

从概念上讲,您正处于正确的轨道上,并带有第二个片段。

  • 你必须使用exit();在wp_redirect()调用后

但是,查看Woocommerce文档is_product()不接受任何参数。这意味着在中传递'7854'对函数没有意义。它根据您是否查看单个产品而返回布尔值(true | false),而不管使用哪种产品。

看看is_product_tag()的文档,我认为如果你用is_product_tag('your-product-slug')代替了这个工作。

相关问题