問題描述
我有一個網站使用 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。