Say what?


An easy-to-use plugin that allows you to alter strings on your site without editing WordPress core, or plugin code. Simply enter the current string, and what you want to replace it with and the plugin will automatically do the rest!

The plugin’s available for forking and contribution over on GitHub

Check out Say What Pro for:

  • String Discovery and autocomplete – find the strings you need without diving through code. Works with server-side and Javascript-rendered strings
  • Improved performance using text-domain-specific filters
  • Wildcard string replacements – replace individual words, or fragments across your whole site
  • Multi-lingual support – set different replacements for different languages on multi-lingual sites
  • Import/export features – Easy import/export of replacements through the user interface

Support this free plugin

As a business, we already donate a percentage of our profits from premium plugins to global climate change projects. You’re free to use this plugin free of charge, but if you do, please consider buying the world some trees in return. You’ll be creating employment for local families and restoring wildlife habitats.


  • Finding a string to replace
  • The admin screen - setting up a replacement
  • The result


  • Install it as you would any other plugin
  • Activate
  • Head over to Tools ยป Text changes and configure some string replacements


Can I use it to change any string?

You can only use the plugin to translate strings which are marked for translation.

How do I find the string to translate?

You can either have a guess, or checkout the plugin in question’s source code, translatable strings are generally wrapped in __(), _e(), _n(), or _x(), for example:

$foo = __('This is a translatable string', 'plugin-domain');

The article here shows some examples of what you’re looking for. Alternatively, the Pro version of the plugin provides a String Discovery mode which means you can search for strings on your site via autocomplete suggestions.

Is there any support for importing replacements?

“Say What?” has preliminary support for exporting, and importing replacements via The following commands are currently

  • export – Export all current string replacements.
  • import – Import string replacements from a CSV file.
  • list – Export all current string replacements. Synonym for ‘export’.
  • update – update string replacements from a CSV file.

See the GitHub homepage for examples.

Can I set different replacements for different languages?

Not in the free plugin, however this is available in the Pro version of the plugin


Oct 14, 2021
The Pro version has been a huge time saver for me and I've used it all over our site. It's so easy to use - I can literally change the text I need to in about 15 seconds. Worth every penny, and one of the best deals around as far as useful/necessary plugins go. In addition, when I had a question today, support responded very quickly and helped me find the info I was looking for - top notch service!
Sep 10, 2021
After hours of looking through the code, I finally gave up and came to to search for help. I found Say What plugin. It's simple and easy to use (free version)! I was able to tweak the 'wording of WooCommerce' at Checkout. Thank you so much for an awesome plugin! Thank you, Bai!
Apr 15, 2021
Thank you for creating this plugin. Your efforts made the process of changing a few bits of text generated by one of my plugins a breeze! This type of clean solution is why I love WordPress and the talented developer community. Keep up the great work!
Mar 16, 2021
sometimes you wish to test things out and deleting and creating from scratch a rule is annoying and time consuming! if you could keep it but in a "disabled" state that will neve be executed if you want to, that would be 5/5 for me. ๐Ÿ™‚
Mar 5, 2021
I just changed my review. User error on my part... sort of important to include the context or it won't change the string. This works as it is supposed to.

Contributors & Developers

“Say what?” is open source software. The following people have contributed to this plugin.


“Say what?” has been translated into 13 locales. Thank you to the translators for their contributions.

Translate “Say what?” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Change log


  • Reduce size of bundled images
  • Update dev build scripts


  • Improve Javascript performance, and remove lodash dependency (resolves some plugin conflicts)


  • Support for translatable strings rendered through WordPress Javascript framework
  • Supports replacing text in Gutenberg / WooCommerce admin / WooCommerce blocks
  • Update details of Say What? Pro vs free plugin


  • Fix issue where replacement table disappeared at small screen widths
  • Update WordPress compatibility
  • Changes to donation / upsell content


  • Fix link in documentation


  • WordPress 5.5 compatibility
  • Changes to Treeware links


  • Ensure help links open in new windows


  • Fix link target in Treeware content


  • Suggest Treeware donations


  • Update information about Pro features


  • Fix issue adding more strings after downgrade from Pro
  • Update text domain of plugin to match guidelines to aid translations


  • Documentation updates only


  • Update plugin links, include settings and upgrade link
  • Update documentation about pro features
  • Admin styling fixes


  • Fix issues where entities could be double encoded on admin screens.


  • Update to admin marketing message. No functional changes.


  • Support for _n() and _nx()
  • Support for multi-line strings


Introduce filters that allows back compatibility for plugins that change their text-domain. Props Pippin Williamson


Avoid warnings on initial activation.
Avoid issues where strings contain HTML / entities


Add info box about Pro version


Support for WP-CLI import and export.


Swap database to UTF-8 to fix problems entering non-ASCII strings.


Fix incorrect escaping on the admin screens.


Fix initial DB table creation
Fix translations for strings with no domain


Allow strings with context to be replaced


Documentation improvements


Avoid wpdb->prepare warning
Minor admin fixes, don’t double translate strings


Fix issue with fields being swapped when first entered


Beta ready for testing and feedback