問題描述
我有一個網站使用 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 頁面,並將其重定向到我們的主頁。
次佳解決方案
我只是改變了重定向
wp_redirect( site_url('my-account/') )
因此如果未登錄或註冊,則用户將重定向到”My-Account” 頁面。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。