從 WooCommerce v2.6.0 起,WooCommerce 的 “我的帳戶” 區域已經使用了所謂的 “端點”。這意味着 WordPress 中只有 1 頁設置(像 “/ my-account”),其中的子頁面是動態加載的(如 “/ my-account / orders”)。這是 WooCommerce 實施的一個好方法,因為這意味着您不需要在 WordPress 管理員中管理多達幾頁; 基於 “端點”(在我們的示例中為 “訂單”)動態地加載該頁面的內容。

這樣做會增加一個新的子頁面到我的帳戶區域有點複雜,但這絕對是可能的!看看它是如何做的

注意:我將在標準函數中編寫這個函數,您可以將其添加到主題的 functions.php 文件中,但我建議您創建一個功能插件,並在類中執行。

添加一個 “信息” 鏈接到我的帳戶導航

首先,我們添加一個信息鏈接到我的帳戶導航。

  • woocommerce_account_menu_items 過濾器接受 1 個參數:的導航項目陣列。
  • 在  iconic_account_menu_item()我們將 “信息” 鏈接添加到 $items 數組的末尾。我們正在使用鍵/值對; 數組鍵是端點 URI(“信息”),該值是鏈接標題(“信息”)的可翻譯字符串。

添加一個 “我的帳戶” 端點

在這個例子中,我們將添加一個名為 “Information” 的新頁面 my-account/information。這意味着我們的終端是簡單的 information,按照我們上面的自定義菜單鏈接。

  • 我們正在添加一個 iconic_add_my_account_endpoint 在該 init 動作上調用的函數。
  • 我們正在使用 add_rewrite_endpoint()來添加我們的端點。這將需要您刷新固定鏈接(只需訪問設置 >  固定鏈接)。
  • add_rewrite_endpoint() 接受 2 個參數。第一個是我們的端點 URI,第二個是端點可用的位置。作為 “我的帳戶” 是一個頁面,我們已經分配了我們的端點 EP_PAGES。您可以查看所有可用的 “鄰居” 的手抄本。

添加完畢後,/my-account/information 網址應返回常規帳戶信息中心,而不是 404 頁面。

向我們的新端點添加內容

而不是使用自定義模板,我認為最好使用可用的鉤子。這樣我們可以保留默認帳戶布局,包括邊欄導航。WooCommerce 為您的端點提供一個自定義鉤子,可以這樣訪問:

我們正在使用該 woocommerce_account_information_endpoint 動作。這是一個自定義操作,您可以通過格式化它創建的任何端點使用 woocommerce_account_{your-endpoint-slug}_endpoint

添加一個 “端點?” 幫手

我們可以添加一個幫助函數來檢查當前查看的頁面是否是一個端點。我看不到 WordPress 中的任何本機功能(如果我錯了,請更正我),所以我為此寫了這個簡單的功能。

所以現在我們可以 if( iconic_is_endpoint('information') ) { ... }用來檢查當前頁面是否是我們的端點。注意:您可以將任何端點傳遞到函數中。

結論

這應該讓您開始!顯然有幾行代碼添加,但是一旦您完成了,修改和演變就相當直接。如果您在 WooCommerce 網站上使用本教程,請告訴我們。我有興趣知道您添加了哪些標籤。