2014-02-09 64 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')代替了這個工作。

相關問題