簡體   English   中英

WooCommerce 我的帳戶自定義端點菜單項

[英]WooCommerce My Account custom endpoint menu item

我正在做一個我的帳戶頁面是主頁的項目。 所以我做了什么,我創建了一個包含短[woocommerce_my_account]的頁面,並從儀表板->設置->閱讀創建了這個頁面主頁。 一切正常。 我也有這個工作端點:

  • mydomain.com/orders
  • mydomain.com/edit-address

但是,當我制作自定義 myaccount 端點時,我遇到了麻煩。 我正在以這種傳統方式進行操作:

add_action('woocommerce_account_custom-endpoint_endpoint', function(){
    echo 'hello'; 
} );

add_action('init', function() {
    add_rewrite_endpoint('custom-endpoint', EP_ROOT | EP_PAGES); 
});

但是 mydomain.com/custom-endpoint 不是指向我的帳戶頁面,而是指向 index.php 或 page.php(WordPress 模板層次結構)。

我很想知道為什么會這樣?

更新:

重要提示:您首先需要在以下位置聲明您的主頁為“我的帳戶”頁面:
WooCommerce 設置 > 高級 > 我的帳戶頁面字段。

使用以下內容:

// Enable endpoint
add_filter( 'woocommerce_get_query_vars', 'myaccount_custom_endpoint_query_var' );
function myaccount_custom_endpoint_query_var( $query_vars ) {
    $query_vars['custom-endpoint'] = 'custom-endpoint';

    return $query_vars;
}

// Endpoint displayed content
add_action('woocommerce_account_custom-endpoint_endpoint', 'display_custom_endpoint_content' ); 
function display_custom_endpoint_content(){
    echo '<p>' . __("hello") . '</p>';
}

您也可以選擇使用以下內容:

// Add it as my account menu item
add_filter ( 'woocommerce_account_menu_items', 'custom_account_menu_items', 10 );
function custom_account_menu_items( $menu_links ){
    $menu_links = array_slice( $menu_links, 0,3 , true )
    + array( 'custom-endpoint' => __('Custom Endpoint') )
    + array_slice( $menu_links, 3, NULL, true );

    return $menu_links;
}

// Endpoint page title
add_filter( 'woocommerce_endpoint_custom-endpoint_title', 'set_my_account_custom_endpoint_title', 10, 2 );
function set_my_account_custom_endpoint_title( $title, $endpoint ) {
    $title = __( "Custom Endpoint", "woocommerce" );

    return $title;
}

代碼進入活動子主題(或活動主題)的functions.php文件。

編輯:鈎子woocommerce_get_query_vars是強制性的,並替換處理add_rewrite_endpoint()的 function ,不再需要(感謝@Jitu)

如果需要,您可以通過轉到 Wordpress 設置 > 永久鏈接和“保存更改”來刷新重寫規則。

測試和工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM