php - 过滤成员(member)计划标题和标签

标签 php wordpress woocommerce polylang woocommerce-memberships

我想根据当前语言(使用 PolyLang)过滤我的 WooCommerce 成员(member)计划的标题。以下内容在后端起作用,即当我设置时,我可以看到 /wp-admin/edit.php?post_type=wc_membership_plan 上的成员(member)计划标题(对于 post_id 3884 的成员(member)计划)发生了变化PolyLang 到不同于英语的语言:

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 );

问题是上面的内容在 /my-account/members-area/ 下的前端不起作用。无论语言如何,此处均使用原始成员(member)计划标题。记录对 my_the_title 的所有调用,我可以看到在浏览后端页面时会出现帖子 3884(我想这就是它在后端工作的原因),但是在浏览前端页面时,我没有看到 3884 号帖子通过。我猜在这种特殊情况下 the_title 是错误的过滤器,但我无法弄清楚为什么以及在这种情况下还可以使用什么。

谢谢, 乌韦

ps:WordPress 6.3、WooCommerce 8.0.2、WooCommerce Memberships 1.25、PolyLang Pro 3.4.5、PolyLang for WooCommerce 1.8

最佳答案

注意:以下内容需要子主题(没有其他方法)

您需要通过您的子主题覆盖 WooCommerce 成员(member)插件中与我的帐户相关的模板文件。阅读以下主题:

首先在您的子主题中,添加一个带有“myaccount”子文件夹的“woocommerce”文件夹。

因此,在 WooCommerce 成员(member)插件中,从“templates”目录 >“myaccount”子目录将文件“my-memberships.php”复制到您的子主题“myaccount”子文件夹(位于“woocommerce”文件夹内)。

完成后,您可以从子主题中打开/编辑“my-memberships.php”模板文件。

到处替换(2次):

$customer_membership->get_plan()->get_name()

与:

get_the_title($customer_membership->get_plan()->id)

然后保存。

Now you can use your code snippet (with the_title filter hook) to make changes on those membership plan names.

关于php - 过滤成员(member)计划标题和标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76935467/

相关文章:

php - 在 woocommerce 管理产品列表中为产品标签添加过滤器下拉列表

php - WooCommerce 订单状态从支付网关更改

php - Woocommerce 变量订阅自定义字段复选框设置默认为未选中

php - 找不到与 bundler 一起安装的 gem

php - javascript 数组弹出

wordpress - 将一个 css 样式应用到另一个 css 样式

wordpress - Google Analytics 页面加载时间与 Pingdom 页面加载时间。

wordpress - 如何获取更新的 WooCommerce 订单数据?

javascript - 自动将 css/js 内容放入 1 个文件中

php - AFNetworking JSON请求不起作用