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

WooCommerce会员计划标题前端多语言过滤失效问题求助

问题:PolyLang过滤WooCommerce会员计划标题在前端会员区域失效

问题详情

我想用PolyLang根据当前语言过滤WooCommerce会员计划的标题,现有代码在后台会员计划列表页(/wp-admin/edit.php?post_type=wc_membership_plan)生效:切换非英语语言时,ID为3884的会员计划标题会变成「原标题 - Not English」,但在前端「我的账户-会员区域」(/my-account/members-area/)页面完全无效,无论切换哪种语言都显示原始标题。

通过日志排查发现,后台页面会调用自定义的my_the_title函数并传入ID3884,但前端页面不会触发这个函数,推测the_title过滤器不适用于前端会员区域的场景,但不知道原因和替代方案。

现有代码

function my_the_title( $title, $id ) {
    if (pll_current_language( 'slug' ) == 'en') {
        return $title;
    }
    if ( $id == '3884' ) {
        return $title . ' - Not English';
    }
    return $title;
}
add_filter( 'the_title', 'my_the_title', 10, 2 );

环境信息

  • WordPress 6.3
  • WooCommerce 8.0.2
  • WooCommerce Memberships 1.25
  • PolyLang Pro 3.4.5
  • PolyLang for WooCommerce 1.8

解决方案

WooCommerce Memberships在前端会员区域显示计划标题时,并未使用通用的the_title过滤器,而是调用了插件自身的专属函数,对应的过滤器为wc_memberships_get_membership_plan_title。你可以替换原有过滤器,或同时保留后台与前端的过滤逻辑:

替换后的代码

function my_membership_plan_title( $title, $plan ) {
    // 仅针对ID为3884的计划生效
    if ( $plan->get_id() != 3884 ) {
        return $title;
    }
    
    // 英文语言下返回原标题
    if ( pll_current_language( 'slug' ) == 'en' ) {
        return $title;
    }
    
    // 非英文语言添加后缀
    return $title . ' - Not English';
}
// 前端会员区域生效的过滤器
add_filter( 'wc_memberships_get_membership_plan_title', 'my_membership_plan_title', 10, 2 );

// 保留后台的the_title过滤器(可选,如需后台也生效则保留)
function my_the_title( $title, $id ) {
    if (pll_current_language( 'slug' ) == 'en') {
        return $title;
    }
    if ( $id == '3884' ) {
        return $title . ' - Not English';
    }
    return $title;
}
add_filter( 'the_title', 'my_the_title', 10, 2 );

说明

  • wc_memberships_get_membership_plan_title过滤器接收两个参数:标题$title和会员计划对象$plan,通过$plan->get_id()可获取计划ID,精准定位目标计划。
  • 若仅需前端生效,可删除后台的the_title过滤器部分;若需前后台均生效,则保留两段过滤逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 09:05:10