首页 > 解决方案 > Wordpress - woocommerce:更改单产品 meta.php 中的“SKU”字符串

问题描述

我只是想更改字符串“SKU”以在单一产品 meta.php 文件中显示其他内容。我正在使用儿童主题。父主题在路径 /inc/compat/ 中有一个 woocommerce.php 文件。因此,据我了解,我不能通过简单地更改主题内的 meta.php 来覆盖。

因此,我尝试在父主题的 woocommerce.php 中添加此功能:

function translate_woocommerce($translation, $text, $domain) {
    if ($domain == 'woocommerce') {
        switch ($text) {
            case 'SKU':
                $translation = 'TEST';
                break;
            case 'SKU:':
                $translation = 'TEST';
                break;
        }
    }
    return $translation; }

add_filter('gettext', 'translate_woocommerce', 10, 3);

但它不起作用。请你帮助我好吗?

非常感谢。

只是一点点更新:如果我将上面的代码放在父主题或子主题的functions.php中,我可以看到Wordpress仪表板内的SKU字符串发生了变化(请查看下图):

在此处输入图像描述

标签: phpwordpresswoocommerceoverriding

解决方案


尝试增加过滤器优先级。

所以:

add_filter( 'gettext', 'translate_woocommerce', 9999, 3 );
function translate_woocommerce( $translation, $text, $domain ) {
    if ( $domain == 'woocommerce' ) {
        switch ( $text ) {
            case 'SKU':
                $translation = 'TEST';
                break;
            case 'SKU:':
                $translation = 'TEST';
                break;
        }
    }
    return $translation;
}

我测试了你的代码,它对我有用。

正如过滤器文档中所报告的那样:https$text ://developer.wordpress.org/reference/hooks/gettext/ 使用带有您引用未翻译文本的变量的开关。

您可能想要使用$translation来引用前端/后端中可见的翻译文本。


推荐阅读