Search code examples
phpwordpresswoocommercepayment-gatewaycheckout

Change default "Save to account" text in Woocommerce checkout


I'm using the stripe gateway to process payments. There is a piece of text that comes from woocommerce "Save to account" which isn't very descriptive for my purposes. This text is located in WC_Payment_Gateway save_payment_method_checkbox() method

Ideally, it'd be something like "Save my credit card details for future purchases (optional)".

Support have suggested I install a translation plugin just to change these three words, which seems to me like a huge overkill.

Any ideas on how to best change this?


Solution

  • I suppose that it's on checkout page… If it is the case, try the following that should do the trick:

    add_filter('gettext', 'change_save_to_account_text', 100, 3 );
    function change_save_to_account_text( $translated_text, $text, $domain ) {
        if( $text === 'Save to account' && $domain == 'woocommerce' && is_checkout() )
        {
            $translated_text =  __( 'Save my credit card details for future purchases (optional)', $domain );
        }
        return $translated_text;
    }
    

    Code goes in function.php file of your active child theme (or active theme).

    If it's not on checkout page, replace is_checkout() by the correct conditional tag