创建新的 Woocommerce 帐户页面时使用主题

Use theme when creating a new WOocommerce Account page

我在 Woocommerce 中为我的帐户页面创建了一个新菜单项,我想知道如何为它创建一个主题文件,以便我可以添加一些自定义代码来显示订单和其他后端内容。 Here is how I added the menu item

我在我的主题中复制了 woocommerce/myaccount 文件夹并添加了一个 'your-approvals' 页面,但无法使用该页面。

add_action( 'init', 'metrodiamonds_add_endpoint' );
function metrodiamonds_add_endpoint() {

    // WP_Rewrite is my Achilles' heel, so please do not ask me for detailed explanation
    add_rewrite_endpoint( 'your-approvals', EP_PAGES );
}

如何将我的 themes/mytheme/woocmmerce/myaccount/your-approvals 分配给我创建的新菜单项?

谢谢

因为add_rewrite_endpoint只创建端点,并没有为该端点配置显示功能。

您必须使用 woocommerce_account_<key>_endpoint 操作。 然后,用 wc_get_template_part

调用所需的模板部分
add_action( 'woocommerce_account_your-approvals_endpoint', 'metrodiamonds_your_approvals_endpoint_content' );
function metrodiamonds_your_approvals_endpoint_content() {
    wc_get_template_part("myaccount/your-approvals");
}

使用 add_rewrite_endpoint 定义您的端点后,请务必 保存永久链接 (在 WordPress 管理区域中,转到“设置 > 永久链接”“保存更改")

之后,您可能想将新帐户页面添加到我的帐户菜单中

您可以进行如下操作:

function metrodiamonds_add_your_approvals_menu__my_account( $items ) {
    $items['your-approvals'] = 'Your Approvals';
    return $items;
}
  
add_filter( 'woocommerce_account_menu_items', 'metrodiamonds_add_your_approvals_menu__my_account' );