Reputation: 1462
I used to have the following function working to change to Related Products text in 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 );
It always worked perfectly, but as of Woocommerce version 3.0 or so, this function no longer works.
How should I fix this in order to make it working in the version 3.0 and up?
Upvotes: 7
Views: 22224
Reputation: 311
There is now a filter for that. Name is "woocommerce_product_related_products_heading"
So you can add a little snippet in your own theme functions.php file like :
add_filter('woocommerce_product_related_products_heading',function(){
return 'My Custom nice related title';
});
Upvotes: 15
Reputation: 253784
A simple alternative way
Overriding Woocommerce templates via your theme for the single-product/related.php
template file, where you can rename it directly from:
<h2><?php esc_html_e( 'Related products', 'woocommerce' ); ?></h2>
To:
<h2><?php esc_html_e( 'Related Books', 'woocommerce' ); ?></h2>
Upvotes: 6
Reputation: 1909
Try this, it's working with me
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;
}
Upvotes: 11