You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为WooCommerce我的账户页面自定义端点填充产品

问题修复方案

1. 修正端点钩子名称(核心问题)

你的代码中注册的端点是narcx-products,但绑定内容的钩子名写错了,导致内容函数无法触发。将错误的钩子替换为正确名称:

原错误代码:

add_action( 'woocommerce_account_new-item_endpoint', 'add_new_item_content' );

修正为:

add_action( 'woocommerce_account_narcx-products_endpoint', 'add_new_item_content' );

2. 刷新固定链接规则

添加新的Rewrite端点后,必须刷新WordPress的固定链接规则:

  • 进入WordPress后台 → 设置 → 固定链接
  • 无需修改任何设置,直接点击「保存更改」按钮,系统会自动刷新规则

3. 移除账户数据信息(按需选择)

方式1:隐藏当前标签页的默认账户内容

如果希望在「NarcX Products」标签页中只显示产品,不加载默认的账户相关内容(如用户信息栏等),添加以下代码:

add_action('template_redirect', 'hide_account_default_content_for_narcx_tab');
function hide_account_default_content_for_narcx_tab() {
    if (is_wc_endpoint_url('narcx-products')) {
        remove_action('woocommerce_account_content', 'woocommerce_account_content');
    }
}

方式2:移除其他账户菜单选项

如果需要删除「我的账户」页面中其他默认菜单(如订单、地址、账户详情等),修改add_new_item_tab函数,只保留自定义标签:

function add_new_item_tab( $items ) {
    $items = array(
        'narcx-products' => 'NarcX Products'
    );
    return $items;
}

完整修正后的代码

add_action( 'init', 'register_new_item_endpoint');

/**
 * Register New Endpoint.
 *
 * @return void.
 */
function register_new_item_endpoint() {
    add_rewrite_endpoint( 'narcx-products', EP_ROOT | EP_PAGES );
}

add_filter( 'query_vars', 'new_item_query_vars' );

/**
 * Add new query var.
 *
 * @param array $vars vars.
 *
 * @return array An array of items.
 */
function new_item_query_vars( $vars ) {
    $vars[] = 'narcx-products';
    return $vars;
}

add_filter( 'woocommerce_account_menu_items', 'add_new_item_tab' );

/**
 * Add New tab in my account page.
 *
 * @param array $items myaccount Items.
 *
 * @return array Items including New tab.
 */
function add_new_item_tab( $items ) {
    // 若需保留部分默认菜单,可调整此数组,例如保留退出登录:
    // $items = array(
    //     'narcx-products' => 'NarcX Products',
    //     'customer-logout' => $items['customer-logout']
    // );
    
    // 仅保留自定义标签的代码:
    $items = array(
        'narcx-products' => 'NarcX Products'
    );
    return $items;
}

// 修正后的钩子名称
add_action( 'woocommerce_account_narcx-products_endpoint', 'add_new_item_content' );

add_filter( 'widget_text', 'do_shortcode' );

/**
 * Add content to the new tab.
 *
 * @return  string.
 */
function add_new_item_content() {
    echo do_shortcode('[products]');
}

// 隐藏当前标签页的默认账户内容(可选)
add_action('template_redirect', 'hide_account_default_content_for_narcx_tab');
function hide_account_default_content_for_narcx_tab() {
    if (is_wc_endpoint_url('narcx-products')) {
        remove_action('woocommerce_account_content', 'woocommerce_account_content');
    }
}

验证步骤

  1. 将修正后的代码替换主题functions.php中的原有代码
  2. 刷新固定链接规则
  3. 登录前端「我的账户」页面,点击「NarcX Products」标签,即可看到产品列表

内容的提问来源于stack exchange,提问作者DynamicEm123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 08:45:20