從 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 網站上使用本教程,請告訴我們。我有興趣知道您新增了哪些標籤。