WooCommerce「我的帳戶」頁整理:登入直接看訂單、選單改名、帳號用 Email

WooCommerce「我的帳戶」頁整理:登入直接看訂單、選單改名、帳號用 Email

最後更新:2026/10/13

客人登入網站的會員中心,通常只想做三件事:看訂單到哪裡了、改收件地址、改密碼。WooCommerce 預設的「我的帳戶」頁,一進去卻是一段「在帳號控制台中,您可以檢視近期訂單、管理運送與帳單地址…」的說明文字,客人還要再點一次「訂單」才看得到想看的東西;選單裡的「下載」,對不賣數位商品的店家來說也是多餘的。

台灣很多網店的會員中心都是這個預設樣子。下面四個調整,讓會員一登入就看到訂單,選單只留用得到的,地址上看得到電話,新會員的帳號名稱也直接用 Email。

不想自己改?把這篇交給 AI

把這篇的網址(或全文)連同下面這段話貼給 AI:

我的網站是 WordPress,有裝 WooCommerce。我想照下面這篇文章,整理會員的「我的帳戶」頁:拿掉用不到的選單、登入後直接看到訂單、地址頁顯示電話、新會員帳號直接用 Email。
請先問我:我有沒有賣數位商品、選單哪些要留。
問清楚之後,再一步一步告訴我:要用哪一段程式碼、貼在哪裡、哪些地方要換成我自己的資料,以及改完怎麼測試。
如果文章的做法不適合我的網站,請直接告訴我原因和替代做法。
文章:(貼上這篇的網址,或整篇內容)

改之前先備份,密碼不要貼給 AI。

選單:拿掉控制台和下載,「地址」改名

「我的帳戶」左側選單的每一項都可以拿掉或改名。這段程式碼拿掉「控制台」和「下載」,把「地址」改成「收件地址」:

// 選單:拿掉控制台、下載,「地址」改叫「收件地址」
add_filter('woocommerce_account_menu_items', function ($items) {
    unset($items['dashboard'], $items['downloads']);
    if (isset($items['edit-address'])) {
        $items['edit-address'] = '收件地址';
    }
    return $items;
});

如果你有賣電子書、講義這類可下載的商品,就把 $items['downloads'] 從 unset 裡拿掉,保留「下載」。選單的名稱也可以照你的客人習慣改,例如把「帳戶詳細資料」改成「修改密碼與資料」。

打開「我的帳戶」直接到訂單

選單拿掉「控制台」之後,還要讓客人打開「我的帳戶」時直接跳到訂單頁,不然進來看到的還是那段說明文字:

// 打開「我的帳戶」直接到「訂單」
add_action('template_redirect', function () {
    if (is_user_logged_in() && is_account_page()
        && !is_wc_endpoint_url() && empty($_GET)) {
        wp_safe_redirect(wc_get_account_endpoint_url('orders'));
        exit;
    }
});

!is_wc_endpoint_url() 確保只有在「我的帳戶」首頁才跳轉,客人點「收件地址」「帳戶詳細資料」時不會被一直帶回訂單頁;empty($_GET) 則避開帶參數的網址,例如重設密碼的連結。沒登入的人照常看到登入和註冊表單。

程式碼放在 Code Snippets 這類外掛或子主題,放法和備份方式見〈WooCommerce 結帳頁改成台灣習慣〉。

收件地址頁也顯示電話

「收件地址」頁會列出帳單地址和運送地址,預設卻不顯示電話,客人沒辦法確認自己留的電話對不對。宅配一定要打電話聯絡收件人,電話寫錯就會退件。下面三段一起用,讓地址下面多一行電話:

// 「收件地址」頁也顯示電話
add_filter('woocommerce_my_account_my_address_formatted_address',
    function ($address, $customer_id, $type) {
        $address['phone'] = get_user_meta($customer_id, $type . '_phone', true);
        return $address;
    }, 10, 3);

add_filter('woocommerce_formatted_address_replacements',
    function ($replace, $args) {
        $replace['{phone}'] = $args['phone'] ?? '';
        return $replace;
    }, 10, 2);

add_filter('woocommerce_localisation_address_formats', function ($formats) {
    if (is_account_page()) {
        foreach ($formats as $country => $format) {
            $formats[$country] = $format . "\n{phone}";
        }
    }
    return $formats;
}, 20);

第一段把電話加進要顯示的地址資料,第二段告訴 WooCommerce {phone} 要換成什麼,第三段在地址格式最後加上 {phone}。第三段加了 is_account_page() 的判斷,只在「我的帳戶」頁加電話;訂單頁和通知信原本就另外顯示電話,不加這個判斷會出現兩次。

新會員的帳號直接用 Email

客人註冊時只填 Email,WooCommerce 會自動產生一個帳號名稱。我們在測試站用 [email protected] 註冊,產生的帳號是 jason.lin,也就是 Email 的 @ 前面那一段。這樣在後台找會員時,常常對不上是哪一位客人;不同信箱的前半段一樣時,還會被加上一串數字,我們再用 [email protected] 註冊,帳號變成 jason.lin-0011。

加上這段,新會員的帳號名稱就是完整的 Email:

// 新會員的帳號直接用完整 Email(例:[email protected])
add_filter('woocommerce_new_customer_data', function ($data) {
    if (!empty($data['user_email']) && !username_exists($data['user_email'])) {
        $data['user_login'] = $data['user_email'];
    }
    return $data;
});

再用 [email protected] 註冊一次,帳號就是 [email protected]。這段只影響之後新註冊的會員,已經存在的帳號名稱不會改,WordPress 也不讓你直接修改帳號名稱。另外,WordPress 的登入欄位本來就同時接受帳號和 Email,客人用 Email 登入一直都可以;這個調整主要是讓你在後台管理會員時一眼認得出來。

會員中心是客人回來的地方

客人第二次、第三次回到網站,常常是從「我的帳戶」開始的:查訂單、再買一次、看課程。這一頁好用,回購就容易。如果你的網站還沒有會員功能,或者會員資料散在各個社群平台,可以先看〈IG 帳號不是你的資產〉。

MIMI 專做客製化網頁設計,購物車電商網站、線上課程網站的會員中心,都可以照你的客人怎麼用來規劃。MIMI 提供台灣網頁設計服務,從臺北、新北到全台灣,都可以用電話、Email 直接和設計師討論;費用可以先看首頁的製作費用參考,歡迎聯絡 MIMI。

WooCommerce PDF 發票、出貨單中文變方塊:新北網店的中文字型設定
WooCommerce 後台越來越慢?新北網店先檢查「已排程動作」

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

我的車
願望清單
最近瀏覽過的
類別