Text Replace – Find and Replace WordPress Strings

Description

Text Replace is a lightweight, performance-optimized WordPress plugin that lets you find and replace any text string on your website without modifying theme or plugin files. Perfect for customizing WooCommerce buttons, changing form labels, or personalizing any text across your site.

Why Choose Text Replace?

  • No Code Editing Required – Find and replace text without touching theme or plugin files
  • Update-Safe – Your string replacements survive theme and plugin updates
  • Performance Optimized – Single database query per page load with intelligent caching
  • Text Domain Filtering – Target specific plugins, themes, or apply changes globally
  • Priority Control – Manage the order of multiple text replacements
  • Bulk Operations – Enable, disable, or delete multiple replacements at once
  • Import/Export – Transfer configurations between sites easily
  • Cache Compatible – Works with WP Rocket, W3 Total Cache, WP Super Cache, and more

Perfect For

  • Changing WooCommerce “Add to Cart” to “Buy Now”
  • Customizing Contact Form 7 button labels
  • Replacing WordPress admin bar text
  • Modifying theme-specific strings
  • Personalizing plugin messages
  • Translating or localizing specific phrases
  • A/B testing different button labels

Key Features

Simple String Replacement
Find and replace any text from themes, plugins, or WordPress core with just a few clicks. No coding knowledge required.

Text Domain Filtering
Target specific plugins or themes by their text domain, or apply replacements globally across your entire site. This prevents unintended replacements in other plugins.

Case Sensitivity Control
Choose whether replacements should match exact case or be case-insensitive for maximum flexibility.

Priority Ordering
Control the order in which replacements are applied using priority numbers (1-999). Lower numbers apply first.

Enable/Disable Toggle
Quickly activate or deactivate replacements without deleting them. Perfect for testing and seasonal changes.

Bulk Operations
Select multiple replacements and enable, disable, or delete them all at once to save time.

Import/Export
Export your replacement configurations to JSON files for backup or transfer to other sites. Import with automatic duplicate detection.

Performance Optimized

  • Single database query per page load
  • Intelligent 24-hour caching system
  • Lazy loading of admin assets
  • No frontend JavaScript overhead
  • Indexed database for fast queries
  • Unlimited replacements with optimized performance

WordPress Native UI

Clean, intuitive interface using WordPress design patterns. Feels like a natural part of WordPress.

Search & Sort

Easily find and organize your text replacements with built-in search and sorting capabilities.

Use Cases

WooCommerce Text Customization

  • Change “Add to Cart” to “Add to Bag” or “Buy Now”
  • Modify “Proceed to Checkout” to “Complete Purchase”
  • Customize product page labels
  • Personalize shipping and payment text
  • Replace price labels and currency text
  • Modify sale badge text

Contact Form 7 Customization

  • Change submit button text
  • Modify form field labels
  • Customize validation messages
  • Personalize success messages
  • Replace error message text

WordPress Core Text Replacement

  • Replace “Howdy” in admin bar
  • Change “Dashboard” to “Control Panel”
  • Modify menu labels
  • Customize admin notices
  • Replace login page text

Theme Text Customization

  • Change “Read More” links
  • Modify navigation labels
  • Customize footer text
  • Personalize call-to-action buttons
  • Replace copyright text

How It Works

Text Replace hooks into WordPress’s translation system (gettext) to intercept and replace text strings before they’re displayed. This means:

  1. No file modifications – Your theme and plugin files remain untouched
  2. Update-safe – String replacements persist through updates
  3. Reversible – Simply disable or delete replacements to restore original text
  4. Efficient – Replacements are cached for optimal performance

How to Change WooCommerce “Add to Cart” Text

One of the most common uses for Text Replace is customizing WooCommerce button text. Here’s how:

  1. Navigate to Text Replace > Add New in your WordPress admin
  2. In the Source String field, enter: Add to cart
  3. In the Replacement String field, enter your desired text (e.g., Buy Now)
  4. In the Text Domain field, enter: woocommerce
  5. Leave Case Sensitive unchecked (default)
  6. Set Priority to 10 (default)
  7. Make sure status is set to Active
  8. Click Save Replacement
  9. Clear your site cache if using a caching plugin
  10. Visit a WooCommerce product page to see the change

Pro Tip: To change “Add to cart” on single products but keep it on shop/archive pages, you’ll need to target the specific string used in that context. Check WooCommerce source code or use browser inspect to find the exact string.

How to Replace Contact Form 7 Button Labels

Customize Contact Form 7 submit buttons without editing form code:

  1. Go to Text Replace > Add New
  2. Source String: Send (or your current button text)
  3. Replacement String: Your desired button text (e.g., Submit Message)
  4. Text Domain: contact-form-7
  5. Status: Active
  6. Click Save Replacement
  7. Clear cache and test your contact form

Note: If you have multiple forms with different button text, create separate replacements for each or leave Text Domain empty to replace globally.

How to Customize Theme Text Without Editing Files

Replace any theme text without touching template files:

  1. First, identify the exact text you want to replace (copy it exactly as it appears)
  2. Navigate to Text Replace > Add New
  3. Source String: The exact theme text (e.g., Read More)
  4. Replacement String: Your new text (e.g., Continue Reading)
  5. Text Domain: Leave empty for global replacement, or enter your theme’s text domain
  6. Enable Case Sensitive if exact capitalization matters
  7. Status: Active
  8. Save and clear cache

Finding Your Theme’s Text Domain: Check your theme’s style.css file header for the “Text Domain” field.

How to Find Text Domain for Any Plugin

To target a specific plugin with text replacement, you need its text domain:

Method 1: Check Plugin Main File
1. Go to Plugins > Plugin File Editor
2. Select the plugin from dropdown
3. Look for Text Domain: in the file header at the top
4. Copy the text domain value

Method 2: Check Translation Files
1. Navigate to /wp-content/plugins/[plugin-name]/languages/
2. Look for .po or .pot files
3. The filename usually contains the text domain (e.g., woocommerce-en_US.po = text domain is woocommerce)

Method 3: Common Plugin Text Domains
* WooCommerce: woocommerce
* Contact Form 7: contact-form-7
* Yoast SEO: wordpress-seo
* Elementor: elementor
* Advanced Custom Fields: acf
* Gravity Forms: gravityforms

Pro Tip: If you can’t find the text domain, leave it blank to replace the text globally across your entire site.

How to Set Up Multiple Text Replacements

When you need to replace several strings, use priority to control the order:

  1. Plan your replacements – List all the text you want to change
  2. Create each replacement – Go to Text Replace > Add New for each one
  3. Set priorities:
    • Use priority 10 for most replacements (default)
    • Use lower numbers (1-9) for replacements that should happen first
    • Use higher numbers (11-99) for replacements that depend on others
  4. Use Text Domain filtering – Specify text domain to avoid conflicts
  5. Test in stages – Enable a few at a time to verify they work correctly

Example Priority Setup:
* Priority 5: Replace “product” with “item” (happens first)
* Priority 10: Replace “Add to cart” with “Buy Now” (normal priority)
* Priority 15: Replace “item price” with “cost” (happens after priority 5 and 10)

How to Replace Text Site-Wide vs Plugin-Specific

Control where your text replacements apply:

Site-Wide Replacement (Global):
1. Create your replacement as normal
2. Leave Text Domain field EMPTY
3. This will replace the text everywhere it appears on your site

Plugin-Specific Replacement:
1. Create your replacement
2. Enter the plugin’s text domain (e.g., woocommerce)
3. Text will ONLY be replaced when generated by that specific plugin

Theme-Specific Replacement:
1. Find your theme’s text domain (check style.css)
2. Enter the theme text domain in the Text Domain field
3. Text will ONLY be replaced in theme-generated content

When to Use Each:
* Global (empty text domain): When you want to replace text regardless of source
* Plugin-specific: When text appears in multiple places but you only want to change it in one plugin
* Theme-specific: When replacing navigation, headers, footers, or theme-specific UI text

How to Test Text Replacements Without Affecting Live Site

Test your replacements safely before going live:

Method 1: Use Enable/Disable Toggle
1. Create your replacement with status Inactive
2. Save the replacement
3. Log out and view your site in an incognito window
4. Log back in and toggle to Active when ready

Method 2: Test on Staging Site
1. Create replacements on your staging site
2. Test thoroughly
3. Export via Text Replace > Import/Export
4. Import the JSON file on your live site

Method 3: Use Priority to Test Incrementally
1. Set test replacements to high priority (90-99)
2. This makes them easy to identify and remove
3. Once tested, adjust priority to normal (10)

Pro Tip: Always clear your cache after making changes, then test in an incognito/private browser window to see changes immediately.

How to Export and Import Text Replacements

Transfer your text replacements between sites easily:

To Export:
1. Go to Text Replace > Import/Export
2. Click Export All Replacements
3. A JSON file will download to your computer
4. This file contains all your active and inactive replacements

To Import:
1. Go to Text Replace > Import/Export on the destination site
2. Click Choose File and select your exported JSON file
3. Click Import
4. The plugin will automatically detect and skip duplicates
5. New replacements will be imported with all settings intact

Use Cases for Import/Export:
* Transfer replacements from staging to production
* Backup your replacements before major updates
* Share replacement configurations between multiple sites
* Migrate from one server to another

Pro Tip: Export your replacements monthly as a backup. Store the JSON file in your site backups.

How to Find and Replace Text in WooCommerce Emails

Customize WooCommerce email text without editing templates:

  1. Identify the exact text in the email you want to change
  2. Go to Text Replace > Add New
  3. Source String: The email text (e.g., Thank you for your order)
  4. Replacement String: Your custom text (e.g., Thanks for shopping with us!)
  5. Text Domain: woocommerce
  6. Status: Active
  7. Save and send a test email

Common WooCommerce Email Strings:
* “Order received” Your custom text
* “Payment method” Your custom text
* “Billing address” Your custom text
* “Order details” Your custom text

Testing: Use WooCommerce > Settings > Emails > Send test email to verify changes.

Developer Friendly

Includes hooks and filters for developers:

  • etrp_replacement_text – Filter text before replacement
  • etrp_replacement_result – Filter text after replacement
  • etrp_active_replacements – Modify active replacements array
  • etrp_max_replacements – Adjust maximum replacement limit (default: unlimited)
  • etrp_before_replacement_apply – Action before replacement
  • etrp_after_replacement_apply – Action after replacement

Example: Programmatically Add Replacement

`php

add_filter(‘etrp_active_replacements’, function($replacements) {
$replacements[] = array(
‘source’ => ‘Add to cart’,
‘replacement’ => ‘Buy Now’,
‘text_domain’ => ‘woocommerce’,
‘case_sensitive’ => false,
‘priority’ => 10
);
return $replacements;
});
`

Support

Need help? Visit our support forum for assistance.

Privacy Policy

Text Replace does not collect, store, or transmit any personal data. All replacement configurations are stored locally in your WordPress database.

Credits

Developed with ❤️ for the WordPress community.

Support

For bug reports, feature requests, and support, please visit:
Support Forum

Translations

Text Replace is translation-ready and includes:
English (default)

Want to translate Text Replace into your language? Visit WordPress Translate.

Screenshots

  • Text replacement dashboard – Find and replace strings with search, sorting, and bulk operations for WordPress sites
  • Add new text replacement – Replace WooCommerce buttons, form labels, and theme text without coding
  • Text domain filtering – Target specific plugins like WooCommerce or Contact Form 7 for precise string replacement
  • Import/Export replacements – Transfer find and replace configurations between WordPress sites with JSON backup

Installation

Automatic Installation

  1. Log in to your WordPress admin panel
  2. Navigate to Plugins > Add New
  3. Search for “Text Replace”
  4. Click Install Now and then Activate
  5. Go to Text Replace in your admin menu to start adding replacements

Manual Installation

  1. Download the plugin ZIP file
  2. Log in to your WordPress admin panel
  3. Navigate to Plugins > Add New > Upload Plugin
  4. Choose the ZIP file and click Install Now
  5. Click Activate Plugin
  6. Go to Text Replace in your admin menu to start adding replacements

After Installation

  1. Navigate to Text Replace > Add New in your WordPress admin
  2. Enter the Source String (text you want to replace)
  3. Enter the Replacement String (new text)
  4. Optionally specify a Text Domain to target a specific plugin or theme
  5. Set Priority if you have multiple related replacements
  6. Choose Case Sensitive matching if needed
  7. Set status to Active
  8. Click Save Replacement
  9. Clear your site cache if using a caching plugin
  10. Visit your site to see the changes

FAQ

Will this work with my theme?

Yes! Text Replace works with any WordPress theme by hooking into WordPress’s translation system (gettext filter).

Will this work with WooCommerce?

Absolutely! It’s perfect for customizing WooCommerce text like “Add to Cart”, “Proceed to Checkout”, and more. Just use “woocommerce” as the text domain to target only WooCommerce strings.

Does this affect site performance?

Minimal impact. The plugin uses intelligent caching and executes only one database query per page load. Active replacements are cached for 24 hours, so there’s virtually no performance impact.

What happens when I update my theme or plugins?

Your text replacements remain intact! Since you’re not modifying source files, updates won’t affect your customizations. This is one of the main benefits of using Text Replace.

Can I replace HTML?

The plugin is designed for text replacement. While it can replace simple HTML, it’s recommended to use it for plain text strings to avoid breaking markup.

How do I find a plugin’s text domain?

Check the plugin’s main file header for the “Text Domain” field, or look in the plugin’s translation files (.po/.pot files). Common examples:
* WooCommerce: woocommerce
* Contact Form 7: contact-form-7
* Yoast SEO: wordpress-seo
* Elementor: elementor

See the “How to Find Text Domain for Any Plugin” section above for detailed instructions.

What’s the maximum number of replacements?

There is no hard limit on the number of replacements. The plugin is optimized to handle unlimited replacements efficiently with intelligent caching.

Can I use regular expressions?

Not in the current version. The plugin uses simple string matching for reliability and performance. Regular expressions may be added in a future version.

Why aren’t my replacements appearing?

Check these common issues:
1. Verify the replacement is Active (toggle switch is on)
2. Check if you specified a Text Domain – try leaving it empty for global replacement
3. Clear your site’s cache (plugin cache and any caching plugins)
4. Verify the source string matches exactly (check case sensitivity setting)
5. Make sure the text you’re trying to replace is actually generated by WordPress, not hardcoded in templates
6. Check if another plugin or code is overriding the text after your replacement

How do I clear the cache?

  1. Go to Text Replace > Import/Export
  2. Click the Clear Cache button
  3. Also clear your caching plugin’s cache if you use one (WP Rocket, W3 Total Cache, etc.)

Can I export and import replacements?

Yes! Go to Text Replace > Import/Export to export all replacements to a JSON file or import from a previously exported file. This is perfect for transferring configurations between sites or creating backups.

Does this work with multilingual plugins?

Yes, Text Replace works alongside multilingual plugins like WPML and Polylang. The replacements are applied after translation, so they won’t interfere with your multilingual setup.

How do I prevent replacing text in other plugins?

Use the Text Domain field to target specific plugins or themes. For example, if you only want to replace text in WooCommerce, enter “woocommerce” as the text domain. This prevents unintended replacements elsewhere on your site.

Can I temporarily disable a replacement?

Yes! Click the status toggle in the replacements list to switch between Active and Inactive without deleting the replacement. Perfect for testing and seasonal changes.

What if I have multiple replacements that affect each other?

Use the Priority field to control the order. Lower numbers (e.g., 1, 5) apply before higher numbers (e.g., 10, 20). This ensures replacements happen in the correct sequence.

Is this compatible with page builders?

Yes! Text Replace works with Elementor, Beaver Builder, Divi, and other page builders for text generated by WordPress. However, hardcoded text in page builder templates may not be affected.

Can I replace text in custom post types?

Yes, as long as the text is generated through WordPress’s translation system (gettext), it can be replaced regardless of post type.

Will this work with Gutenberg blocks?

Yes! Text Replace works with Gutenberg editor and block content, as long as the text is dynamically generated. Hardcoded text in block templates may not be affected.

Can I replace text in plugin notifications?

Yes! Use the plugin’s text domain to target specific plugin notifications. This is useful for customizing admin notices, update messages, and error messages.

Does this work with WordPress multisite?

Yes, Text Replace works on WordPress multisite installations. Each site in the network has its own set of replacements. You can use import/export to share configurations across sites.

How do I know if a replacement is working?

  1. Make sure the replacement is set to Active
  2. Clear all caches (plugin + site cache)
  3. Log out and view your site in an incognito browser window
  4. Search for the source text on the page – it should be replaced
  5. Check browser inspector to verify the text in the HTML source

Reviews

پروری 15, 2026 1 reply
Merci pour cet excellent petit plugin qui m’a permis de traduire une chaîne de caractères sur laquelle je bloquais depuis quelques temps. Un filtre woocommerce de catégories de produits affiché sur un widget, impossible à traduire malgré de nombreuses méthodes.Je cherchais un outil permettant tout simplement de pouvoir ajouter à la volée des chaînes de caractère et de les traduire par ce que l’on veut : plutôt basique comme fonctionnalité mais ni Loco translate et autres plugins très connus du genre ne proposaient cela, ni n’arrivaient à traduire la chaîne.Avec Text Replace c’était réglé en 1min30, bravo
جنوری 8, 2026 1 reply
This is a great little plugin. Clean and simple. But right now it’s having trouble deleting replacements. If you can’t delete replacements, the plugin essentially doesn’t work. Not sure if the developer abandoned the project.
Read all 2 reviews

Contributors & Developers

“Text Replace – Find and Replace WordPress Strings” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.4 – 2025-01-10

  • Added: Bulk delete functionality – delete multiple replacements at once
  • Improved: Cleaner admin interface by removing replacement count notice
  • Enhanced: Better user experience with streamlined replacement management

1.0.3 – 2025-12-30

  • Update: Compatibility

1.0.2 – 2025-12-16

  • Updated: Tested up to WordPress 6.9
  • Improved: Removed replacement limit – now supports unlimited text replacements
  • Enhanced: One-click cache clearing from Import/Export page
  • Optimized: Better performance with large numbers of string replacements
  • Added: Improved compatibility with WooCommerce 9.x
  • Fixed: Text domain filtering for edge cases

1.0.1 – 2025-11-15

  • Fixed: Minor bug fixes and improvements
  • Updated: Enhanced security checks for text replacement operations
  • Improved: Better handling of special characters in find and replace strings

1.0.0 – 2025-10-25

  • Initial release
  • String replacement functionality with text domain filtering
  • Priority ordering system for multiple text replacements
  • Case-sensitive and case-insensitive matching
  • Enable/disable toggle for individual replacements
  • Bulk operations (enable, disable, delete multiple replacements)
  • Import/export functionality with JSON format
  • Performance optimization with intelligent caching
  • WordPress coding standards compliance
  • Security hardening with nonce verification and capability checks
  • Integration with WordPress gettext system for reliable text replacement