如何在WooCommerce账户区域为特定客户添加专属展示内容
WooCommerce账户区添加客户专属标签页实现方案
1. 新增自定义账户端点
在当前主题(推荐使用子主题,避免主题更新覆盖自定义代码)的functions.php文件中添加如下代码,注册自定义账户页端点:
// 注册自定义账户端点 add_action( 'init', 'custom_add_exclusive_content_endpoint' ); function custom_add_exclusive_content_endpoint() { add_rewrite_endpoint( 'exclusive-offers', EP_ROOT | EP_PAGES ); } // 把自定义端点插入账户菜单项 add_filter( 'woocommerce_account_menu_items', 'custom_add_exclusive_menu_item' ); function custom_add_exclusive_menu_item( $items ) { // 仅符合购买条件的用户显示该菜单项,123替换为红色汽车对应的产品ID if ( custom_check_user_purchased_product( array( 123 ) ) ) { // 可调整第二个参数调整菜单位置,当前为插入到第2个菜单项之后 $new_items = array_slice( $items, 0, 2, true ) + array( 'exclusive-offers' => '专属权益' ) + array_slice( $items, 2, NULL, true ); return $new_items; } return $items; }
2. 添加用户购买记录判断逻辑
同样添加到functions.php文件,用于校验当前用户是否购买过指定产品:
// 判断当前登录用户是否购买过指定ID的产品 function custom_check_user_purchased_product( $product_ids ) { if ( ! is_user_logged_in() ) return false; $user_id = get_current_user_id(); foreach ( $product_ids as $product_id ) { if ( wc_customer_bought_product( '', $user_id, $product_id ) ) { return true; } } return false; }
可传入多个产品ID组成的数组,用户匹配到任意一个产品即可触发显示规则。
3. 渲染专属标签页内容
在functions.php中添加钩子,匹配到自定义端点时输出对应内容,兼容你的Bootstrap主题样式:
add_action( 'woocommerce_account_exclusive-offers_endpoint', 'custom_render_exclusive_content' ); function custom_render_exclusive_content() { $current_user = wp_get_current_user(); // 直接输出内容,可根据用户属性、已购产品灵活调整展示信息 echo '<h3>您好 ' . esc_html( $current_user->display_name ) . ',这是您的专属权益</h3>'; echo '<div class="card mt-3">'; // 直接调用Bootstrap原生卡片类 echo '<div class="card-body">'; echo '<p class="card-text">下次消费可享8折专属优惠,优惠码:RED_CAR_USER2024</p>'; echo '<p class="card-text">红色车主专属线下沙龙活动报名通道已开启,可联系在线客服预留名额</p>'; echo '</div></div>'; // 也可调用独立模板文件维护,更适合复杂内容场景 // 在主题目录下新建woocommerce/myaccount/exclusive-offers.php存放自定义内容,取消下方注释即可生效 // wc_get_template( 'myaccount/exclusive-offers.php' ); }
4. 生效配置
代码添加完成后,进入WordPress后台「设置」-「固定链接」,无需修改参数直接点击「保存设置」,刷新重写规则后即可正常访问。
补充注意事项
- 如果需要为购买不同产品的用户展示不同内容,可在渲染函数中增加判断分支,匹配对应产品ID输出不同内容即可
- 专属优惠码可配合WooCommerce自带的优惠码功能,设置仅限指定用户/用户组使用,提升使用安全性
内容的提问来源于stack exchange,提问作者Omar Giancarlo
相关产品推荐
相关产品推荐

