Joe Bloggs
Joe Bloggs

Reputation: 1462

Rename Related Products title in Woocommerce 3

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

Answers (3)

Benoit
Benoit

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

LoicTheAztec
LoicTheAztec

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

Mo&#39;men Mohamed
Mo&#39;men Mohamed

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

Related Questions