我曾经使用以下功能来更改Woocommerce中的相关产品文本。
function my_text_strings( $translated_text, $text, $domain ) {
switch ( $translated_text ) {
case 'Related Products' :
$translated_text = __( 'Related Books', 'woocommerce' );
break;
}
return $translated_text;
}
add_filter( 'gettext', 'my_text_strings', 20, 3 );
它总是很完美,但是从Woocommerce 3.0版开始,这个功能不再适用。
我应该如何修复此问题才能使其在3.0及更高版本中运行?
答案 0 :(得分:6)
试试这个,它与我合作
add_filter( 'gettext', 'wps_translate_words_array' );
add_filter( 'ngettext', 'wps_translate_words_array' );
function wps_translate_words_array( $translated ) {
$words = array(
// 'word to translate' = > 'translation'
'Related Products' => 'Check out these related products',
);
$translated = str_ireplace( array_keys($words), $words, $translated );
return $translated;
}
答案 1 :(得分:2)
现在有一个过滤器。 名称为“ woocommerce_product_related_products_heading”
因此,您可以在自己的主题functions.php文件中添加一些代码段,例如:
add_filter('woocommerce_product_related_products_heading',function(){
return 'My Custom nice related title';
});
答案 2 :(得分:1)
一种简单的替代方式
Overriding Woocommerce templates via your theme用于single-product/related.php
模板文件,您可以在其中直接重命名:
<h2><?php esc_html_e( 'Related products', 'woocommerce' ); ?></h2>
要:
<h2><?php esc_html_e( 'Related Books', 'woocommerce' ); ?></h2>