Mike Young
Mike Young

Reputation: 321

Change or translate specific texts in Woocommerce

I found a solution online for this but it does not seem to work.

It says to edit the below file which I did a few days ago but somehow it is not working still.

/wp-content/plugins/woocommerce/templates/single-product/related.php

Which if I FTP to the server the file shows the below:

if ( $products->have_posts() ) : ?>

<div class="related products">

    <h2><?php _e('You may also like', 'woocommerce' ); ?></h2>

However the webpage still shows 'Related products' and not 'You may also like'

For some reason this is not taking place or being over ridden somewhere.

Any ideas?

Upvotes: 6

Views: 34630

Answers (7)

Koni
Koni

Reputation: 482

A friendly tip for those that have WooCommerce/WordPress in another language:

You need to change the original string, e.g., "Related Products", to the translated string that is showing up on your language. In my case, "related products" translates to "productos relacionados".

Code to include in the functions.php file:

function my_text_strings( $translated_text, $text, $domain ) {
    
    switch ( $translated_text ) {
        case 'Productos relacionados' :
            $translated_text = __( 'Completá el look', 'woocommerce' );
            break;
    }

    return $translated_text;
}

add_filter( 'gettext', 'my_text_strings', 20, 3 );

Upvotes: 6

Anders Lund
Anders Lund

Reputation: 41

2020 Update

Instead of the suggested search-and-replace method, there is now a filter you can use, which is more accurate.

You add this snippet to your functions.php file, in your child theme.

/*-------------- Change related products text -------------*/
add_filter( 'woocommerce_product_related_products_heading', 'single_related_text' );

function single_related_text(){
    return __('These products might be if your interest as well!', 'woocommerce');
}

Upvotes: 3

Gary
Gary

Reputation: 3

I have just used the following code successfully on one of my own sites. It needs to be placed in the functions.php in your child theme. Replace 'Your Custom Text Here' with the words you wish to use.

add_filter( 'gettext', 'wtd_related_products_text', 20, 3 );
function wtd_related_products_text( $translated_text, $text, $domain ) {
switch ( $translated_text ) {
case 'Related products' :
$translated_text = __( 'Your Custom Text Here', 'woocommerce' );
break;
}
return $translated_text;
}

Upvotes: 0

Fabiano Monteiro
Fabiano Monteiro

Reputation: 431

A little PHP snippet. Place PHP snippets at the bottom of your child theme functions.php file: wp-content/themes/mythemename/functions.php

add_filter( 'gettext', 'mythemename_translate_woocommerce_strings', 999, 3 );

function mythemename_translate_woocommerce_strings( $translated, $text, $domain ) {

    $translated = str_ireplace( 'text EN', 'text translated PT_BR', $translated );

    return $translated;
}

Upvotes: 0

MarkPraschan
MarkPraschan

Reputation: 600

Here is user5217948's code with the needed case update from Frithir:

// CHANGE RELATED PRODUCTS TEXT
function my_text_strings( $translated_text, $text, $domain ) {
    switch ( $translated_text ) {
        case 'Related products' :
            $translated_text = __( 'You may also like...', 'woocommerce' );
            break;
    }
    return $translated_text;
}
add_filter( 'gettext', 'my_text_strings', 20, 3 );

This code works with WooCommerce 3.3.1 and WordPress 4.9.4 (both circa Feb 2018).


.

Upvotes: 5

user5217948
user5217948

Reputation: 301

i found this for the child functions.php: http://speakinginbytes.com/2013/10/gettext-filter-wordpress/

/**
 * Change text strings
 *
 * @link http://codex.wordpress.org/Plugin_API/Filter_Reference/gettext
 */
function my_text_strings( $translated_text, $text, $domain ) {
    switch ( $translated_text ) {
        case 'Related Products' :
            $translated_text = __( 'Check out these related products', 'woocommerce' );
            break;
    }
    return $translated_text;
}
add_filter( 'gettext', 'my_text_strings', 20, 3 );

it works well here: https://mo-sound.com/en/shop/ball-speaker-classic-white/

Upvotes: 30

RST
RST

Reputation: 3925

The best way to override default templates is to copy the file to a folder named /woocommerce/single-product inside your current theme. Make changes to that file.

In general to override Woocommerce template files like

/wp-content/plugins/woocommerce/templates/<foldername>/<filename>

you copy the file to

/wp-content/<your-theme>/woocommerce/<foldername>/<filename>

Upvotes: 9

Related Questions