What is Say What? plugin?
Say What? is a lightweight WordPress plugin for overriding specific text strings in themes and plugins without editing files or creating PO translation files. While Loco Translate edits the full localization file of a theme or plugin, Say What? takes a more surgical approach: you identify a specific string (such as a button label, a widget title, or a plugin notice), enter the original text and the replacement text, and the plugin swaps it on every page load. No FTP, no terminal, no file permissions — just a simple admin table of string replacements.
Say What? is ideal for quick text customizations that do not warrant the overhead of creating a full localization file. Common use cases include: renaming “Leave a Reply” to a custom comment prompt, changing WooCommerce’s “Add to Cart” label, adjusting contact form plugin button text, or modifying any theme or plugin text that cannot be changed through theme settings. The plugin uses WordPress’s gettext filter hook, which means it works on any string that passes through the standard WordPress localization system.
Say What? is 100% free with no premium version. Its simplicity is both its strength and its limitation: it cannot handle strings that are not passed through WordPress gettext functions (the same limitation as Loco Translate), and it has no version control or export functionality. For minor text changes on live sites, Say What? is faster than any alternative. For comprehensive theme or plugin localization, Loco Translate provides a more complete solution.
Need Help With Say What? Setup, Troubleshooting, or Customization?
Need help with Say What?? Whether you are dealing with errors, broken functionality, styling problems, plugin conflicts, or advanced customization, we can help you fix the issue and get the plugin working properly on your WordPress site.
Get Say What? Expert HelpKey Features
- Override specific theme and plugin text strings via admin table
- No file editing, FTP, or command line required
- Works on any string using WordPress gettext functions
- Text domain support for targeting specific plugin or theme strings
- Table-based management: add, edit, delete overrides
Pros & Cons
Pros
- Fastest way to change specific theme or plugin text strings on a live site
- No file access required — pure admin interface
- Can target strings from specific plugins using text domain to avoid unintended matches
Cons
- Only works on strings that use WordPress gettext functions — cannot change hardcoded text
- No export or backup functionality
Free vs Premium
Completely free. No paid version.
Common Problems & Fixes
Say What? replacement is not working — the original text still appears on the site. How do I fix this?
The most common cause is an incorrect string entry. Say What? requires the replacement string to exactly match the original — including capitalization, punctuation, and spacing. Find the exact original string by viewing the page source or using browser DevTools → Inspect Element on the text, or by checking the theme/plugin PHP file where the string is defined. Also verify the text domain is correct — for a WooCommerce string, the text domain is “woocommerce”; for a theme string, it is the theme’s text domain (check style.css Text Domain header). If the text domain is left empty in Say What?, it matches all domains which may cause conflicts.
After changing a WooCommerce "Add to Cart" button text with Say What?, the change appears on product pages but not on the shop archive. Why?
WooCommerce uses different strings for the Add to Cart button depending on context. The archive page (shop listing) may use a different string than the single product page — for example, “Add to cart” (lowercase) in one context and “Add to Cart” (title case) in another. Create two Say What? entries with the same replacement text targeting each version of the string. Also check that the text domain for both entries is “woocommerce” to target only WooCommerce strings rather than potential matches in other plugins.
Say What? is changing a string in one plugin that I want to keep, while trying to change it in another plugin that uses the same wording. How do I target only one plugin?
Use the Text Domain field in Say What? to restrict the replacement to a specific plugin. Each plugin has a text domain (typically matching the plugin slug, listed in the plugin’s PHP header as Text Domain). Enter the specific plugin’s text domain to ensure the replacement only applies to strings from that plugin. If both plugins use the same text domain (uncommon but possible), the replacement will affect both — in that case, a custom code approach using the gettext filter with more specific conditions is needed.
Customization & Developer Notes
How do I find the text domain for a theme or plugin to use in Say What??
For plugins: open the main plugin PHP file (the one with plugin headers) and look for the “Text Domain:” field in the header comments, or search the file for load_plugin_textdomain() to find the domain string. For themes: open style.css and look for the “Text Domain:” field in the theme header. Alternatively, install Query Monitor and browse to a page containing the string — Query Monitor’s Languages panel shows all loaded text domains on the current page, making it easy to identify which domain corresponds to which text.
Can Say What? be used to translate strings into a different language rather than just replacing English with English?
Yes — Say What? can replace any string with text in any language. Enter the original English string in the “Original” field and the translated version in the “Replacement” field. This works as a lightweight single-language override for specific strings without creating a full PO file. However, for site-wide localization into another language, Loco Translate or a full localization workflow is more appropriate. Say What? is better suited for targeted overrides of a handful of strings rather than complete language replacement.
Frequently Asked Questions
Is Say What? better or worse than Loco Translate for changing plugin text?
They serve overlapping but distinct needs. Say What? is faster for changing one to five strings with no file management overhead — install, enter the string, done. Loco Translate is better for comprehensive localization of an entire plugin or theme into another language, managing many strings systematically, or working with translators. For a site owner who wants to change “Leave a Reply” to “Leave a Comment,” Say What? takes 30 seconds. For a developer translating an entire plugin into Spanish, Loco Translate is the appropriate tool.
Does Say What? work with Gutenberg blocks and Full Site Editing themes?
Say What? works on any string that passes through WordPress gettext filter hooks, regardless of whether it originates from a classic theme, Gutenberg block, or Full Site Editing theme. If a block or FSE theme string is not passing through gettext functions (some FSE themes hardcode text in template files without localization), Say What? cannot override it. The same limitation applies to Loco Translate and all string-based WordPress localization tools.
Can Say What? break after updates?
Yes, that can happen, especially on older sites with many plugins. This usually happens when the plugin, theme, and add-ons are updated out of sequence. In most cases, testing on staging catches the issue before it reaches the live site. From experience, backups and changelog reviews save a lot of cleanup time.
What should I check before installing Say What??
Start by checking whether another plugin already does the same job. In most cases, overlap is what creates avoidable conflicts and performance issues. A common issue is installing a plugin because it looks convenient without checking the stack first. From experience, a short compatibility review avoids most of the pain later.