
重點整理
WooCommerce 會員登出後預設回到登入頁。在子主題的 functions.php 加入一段 add_action('wp_logout') 搭配 wp_redirect 的函數,就能改成導向首頁或任何指定頁面;本文提供兩段可直接套用的程式碼。
WooCommerce 帳戶設定 原本的重新導向是將使用者跳轉至登入頁面,這樣的設定對於一些電商網站而言是比較沒有意義的,如果説在使用者操作登出後,可以跳轉回首頁,或者導向至感謝頁、電子報訂閱、折扣優惠頁等,會比較容易提升訪客在網站中做更多資訊瀏覽或者下單購買的機會,因此在本篇教學中,就是要說明如何運用簡單的函數來修改 WooCommerce 預設的重新導向方式,讓使用者在登出後可以到達我們所指定的網站頁面。
加入函數設定會員登出導向至首頁
第一步:以安裝 WooCommerce 的銷售網站為例,下圖是我的帳戶頁面,首先可以先嘗試登出後的動作。

第二步:點選登出後會回到登入畫面,如果沒有做特別設定,只要操作登出後都會到達下方圖片中的登入頁。

第三步:如果想要讓使用者登出後可以自動跳轉至首頁,可以使用下面這一段函數。使用 add_action 來定義 wp_logout 登出時執行的動作為 wp_redirect ,值為 home_url ,也就是首頁網址。
第四步:會加入方式為進入外觀的佈景主題編輯器中,選擇子主題後,在 funtion.php 檔案結尾處加入上方提供的函數,點選更新,如下圖所示。

第五步:完成後當會員登出後就會重新導向至網站首頁,可參考下方影片。
帳戶登出指定重新導向頁面函數
第一步:如果不想要將登出用戶重新導向至首頁,而是想要跳轉到網站指定頁面,則可以使用下方函數,加入方式與第一小節中說明相同。
第二步:修改 wp-redirect 中的網址為想要將使用者導向的頁面網址,修改單引號中的網址即可。


第四步:完成後就會將登出使用者導向至指定頁面,下方影片中筆者是設定轉向至商品型錄頁。
用 wp_redirect 寫轉址要注意什麼?
轉址程式碼很短,但有幾個細節沒注意就可能失效:
- 轉址後要加 exit:
wp_redirect()只是送出轉址指令,後面要接exit;停止執行,否則可能被其他程式覆蓋。 - 站內網址用 wp_safe_redirect:它只允許轉到自己網站的網址,可以避免被利用轉到外部可疑網站。
- 網址用函數產生:例如
home_url('/shop/'),日後換網域不用改程式。 - 測試要清快取:用無痕視窗與一般會員帳號測試,管理員帳號的行為可能不同。
常見問題
WooCommerce 登出後可以導向首頁嗎?
可以。在子主題的 functions.php 加入 add_action('wp_logout', …),在函數中用 wp_redirect 導向 home_url(),並在後面加上 exit,會員登出後就會回到首頁。想導向其他頁面,把網址換成指定頁面即可。
登出導向的程式碼要放在哪裡?
放在子主題的 functions.php,或用 Code Snippets 這類程式碼片段外掛新增。不要改父主題的檔案,主題更新後會被覆蓋。加入前先備份網站,加入後用一般會員帳號實際登入、登出測試一次。
為什麼點登出會先出現「確定要登出嗎」的頁面?
WordPress 與 WooCommerce 的登出網址需要帶安全驗證碼,如果選單中的登出連結是手動輸入的固定網址,沒有驗證碼,就會先顯示確認頁。建議使用 WooCommerce「我的帳號」選單內建的登出連結,就不會出現這個步驟。
結語
在 WordPress 加入函數前,請記得要先為網站做備份,尤其在不知道網站中啟用哪些外掛,或者網站是委外建置的狀況下,輕易加入函數是很容易導致網站發生錯誤的,這一點請務必要注意到。
