Changeset 3429459
- Timestamp:
- 12/30/2025 06:52:53 AM (2 weeks ago)
- Location:
- easy-text-replace
- Files:
-
- 6 edited
- 1 copied
-
tags/1.0.3 (copied) (copied from easy-text-replace/trunk)
-
tags/1.0.3/easy-text-replace.php (modified) (1 diff)
-
tags/1.0.3/readme.txt (modified) (11 diffs)
-
tags/1.0.3/vendor/composer/installed.php (modified) (2 diffs)
-
trunk/easy-text-replace.php (modified) (1 diff)
-
trunk/readme.txt (modified) (11 diffs)
-
trunk/vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
easy-text-replace/tags/1.0.3/easy-text-replace.php
r3420701 r3429459 4 4 * Plugin URI: https://wordpress.org/plugins/easy-text-replace/ 5 5 * Description: Lightweight WordPress string replacement plugin that allows administrators to replace strings from themes, plugins, and WordPress core with minimal performance impact. 6 * Version: 1.0. 26 * Version: 1.0.3 7 7 * Author: SH Sajal Chowdhury 8 8 * Author URI: https://easywptools.com -
easy-text-replace/tags/1.0.3/readme.txt
r3420701 r3429459 1 === Easy Text Replace - Change Text Without Code===1 === Text Replace - Find and Replace WordPress Strings === 2 2 Contributors: shsajalchowdhury 3 Tags: change, string, customize text, change text, translation3 Tags: text-replace, find-and-replace, string-replacement, woocommerce, gettext 4 4 Requires at least: 5.8 5 5 Tested up to: 6.9 6 6 Requires PHP: 7.4 7 Stable tag: 1.0. 27 Stable tag: 1.0.3 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html 10 10 11 Customize WooCommerce, forms & WordPress text instantly. Replace strings without coding. Update-safe, cached, SEO-friendly text replacement.11 Find and replace any WordPress text without coding. Change WooCommerce buttons, form labels, and theme text. Update-safe and cached. 12 12 13 13 == Description == 14 14 15 ** Easy Text Replace** is a lightweight, performance-optimized WordPress plugin that allows you to replace any text string on your website without modifying theme or plugin files. Perfect for customizing WooCommerce buttons, changing WordPresslabels, or personalizing any text across your site.16 17 = Why Choose EasyText Replace? =18 19 * **No Code Editing Required** - Change text without touching theme or plugin files20 * **Update-Safe** - Your customizations survive theme and plugin updates15 **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. 16 17 = Why Choose Text Replace? = 18 19 * **No Code Editing Required** - Find and replace text without touching theme or plugin files 20 * **Update-Safe** - Your string replacements survive theme and plugin updates 21 21 * **Performance Optimized** - Single database query per page load with intelligent caching 22 22 * **Text Domain Filtering** - Target specific plugins, themes, or apply changes globally 23 * **Priority Control** - Manage the order of multiple replacements23 * **Priority Control** - Manage the order of multiple text replacements 24 24 * **Bulk Operations** - Enable, disable, or delete multiple replacements at once 25 25 * **Import/Export** - Transfer configurations between sites easily … … 39 39 40 40 **Simple String Replacement** 41 Replace any text from themes, plugins, or WordPress core with just a few clicks. No coding knowledge required.41 Find and replace any text from themes, plugins, or WordPress core with just a few clicks. No coding knowledge required. 42 42 43 43 **Text Domain Filtering** … … 71 71 72 72 == Search & Sort == 73 Easily find and organize your replacements with built-in search and sorting capabilities.73 Easily find and organize your text replacements with built-in search and sorting capabilities. 74 74 75 75 = Use Cases = 76 76 77 == E-CommerceCustomization ==77 == WooCommerce Text Customization == 78 78 * Change "Add to Cart" to "Add to Bag" or "Buy Now" 79 79 * Modify "Proceed to Checkout" to "Complete Purchase" 80 80 * Customize product page labels 81 81 * Personalize shipping and payment text 82 83 == Form Customization == 84 * Change Contact Form 7 submit button text 82 * Replace price labels and currency text 83 * Modify sale badge text 84 85 == Contact Form 7 Customization == 86 * Change submit button text 85 87 * Modify form field labels 86 88 * Customize validation messages 87 89 * Personalize success messages 88 89 == WordPress Core Customization == 90 * Replace error message text 91 92 == WordPress Core Text Replacement == 90 93 * Replace "Howdy" in admin bar 91 94 * Change "Dashboard" to "Control Panel" 92 95 * Modify menu labels 93 96 * Customize admin notices 94 95 == Theme Customization == 97 * Replace login page text 98 99 == Theme Text Customization == 96 100 * Change "Read More" links 97 101 * Modify navigation labels 98 102 * Customize footer text 99 103 * Personalize call-to-action buttons 104 * Replace copyright text 100 105 101 106 = How It Works = 102 107 103 EasyText Replace hooks into WordPress's translation system (gettext) to intercept and replace text strings before they're displayed. This means:108 Text Replace hooks into WordPress's translation system (gettext) to intercept and replace text strings before they're displayed. This means: 104 109 105 110 1. **No file modifications** - Your theme and plugin files remain untouched 106 2. **Update-safe** - Replacements persist through updates111 2. **Update-safe** - String replacements persist through updates 107 112 3. **Reversible** - Simply disable or delete replacements to restore original text 108 113 4. **Efficient** - Replacements are cached for optimal performance 114 115 == How to Change WooCommerce "Add to Cart" Text == 116 117 One of the most common uses for Text Replace is customizing WooCommerce button text. Here's how: 118 119 1. Navigate to **Text Replace > Add New** in your WordPress admin 120 2. In the **Source String** field, enter: `Add to cart` 121 3. In the **Replacement String** field, enter your desired text (e.g., `Buy Now`) 122 4. In the **Text Domain** field, enter: `woocommerce` 123 5. Leave **Case Sensitive** unchecked (default) 124 6. Set **Priority** to 10 (default) 125 7. Make sure status is set to **Active** 126 8. Click **Save Replacement** 127 9. Clear your site cache if using a caching plugin 128 10. Visit a WooCommerce product page to see the change 129 130 **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. 131 132 == How to Replace Contact Form 7 Button Labels == 133 134 Customize Contact Form 7 submit buttons without editing form code: 135 136 1. Go to **Text Replace > Add New** 137 2. **Source String**: `Send` (or your current button text) 138 3. **Replacement String**: Your desired button text (e.g., `Submit Message`) 139 4. **Text Domain**: `contact-form-7` 140 5. Status: **Active** 141 6. Click **Save Replacement** 142 7. Clear cache and test your contact form 143 144 **Note:** If you have multiple forms with different button text, create separate replacements for each or leave Text Domain empty to replace globally. 145 146 == How to Customize Theme Text Without Editing Files == 147 148 Replace any theme text without touching template files: 149 150 1. First, identify the exact text you want to replace (copy it exactly as it appears) 151 2. Navigate to **Text Replace > Add New** 152 3. **Source String**: The exact theme text (e.g., `Read More`) 153 4. **Replacement String**: Your new text (e.g., `Continue Reading`) 154 5. **Text Domain**: Leave empty for global replacement, or enter your theme's text domain 155 6. Enable **Case Sensitive** if exact capitalization matters 156 7. Status: **Active** 157 8. Save and clear cache 158 159 **Finding Your Theme's Text Domain:** Check your theme's style.css file header for the "Text Domain" field. 160 161 == How to Find Text Domain for Any Plugin == 162 163 To target a specific plugin with text replacement, you need its text domain: 164 165 **Method 1: Check Plugin Main File** 166 1. Go to Plugins > Plugin File Editor 167 2. Select the plugin from dropdown 168 3. Look for `Text Domain:` in the file header at the top 169 4. Copy the text domain value 170 171 **Method 2: Check Translation Files** 172 1. Navigate to `/wp-content/plugins/[plugin-name]/languages/` 173 2. Look for .po or .pot files 174 3. The filename usually contains the text domain (e.g., `woocommerce-en_US.po` = text domain is `woocommerce`) 175 176 **Method 3: Common Plugin Text Domains** 177 * WooCommerce: `woocommerce` 178 * Contact Form 7: `contact-form-7` 179 * Yoast SEO: `wordpress-seo` 180 * Elementor: `elementor` 181 * Advanced Custom Fields: `acf` 182 * Gravity Forms: `gravityforms` 183 184 **Pro Tip:** If you can't find the text domain, leave it blank to replace the text globally across your entire site. 185 186 == How to Set Up Multiple Text Replacements == 187 188 When you need to replace several strings, use priority to control the order: 189 190 1. **Plan your replacements** - List all the text you want to change 191 2. **Create each replacement** - Go to Text Replace > Add New for each one 192 3. **Set priorities:** 193 - Use priority 10 for most replacements (default) 194 - Use lower numbers (1-9) for replacements that should happen first 195 - Use higher numbers (11-99) for replacements that depend on others 196 4. **Use Text Domain filtering** - Specify text domain to avoid conflicts 197 5. **Test in stages** - Enable a few at a time to verify they work correctly 198 199 **Example Priority Setup:** 200 * Priority 5: Replace "product" with "item" (happens first) 201 * Priority 10: Replace "Add to cart" with "Buy Now" (normal priority) 202 * Priority 15: Replace "item price" with "cost" (happens after priority 5 and 10) 203 204 == How to Replace Text Site-Wide vs Plugin-Specific == 205 206 Control where your text replacements apply: 207 208 **Site-Wide Replacement (Global):** 209 1. Create your replacement as normal 210 2. **Leave Text Domain field EMPTY** 211 3. This will replace the text everywhere it appears on your site 212 213 **Plugin-Specific Replacement:** 214 1. Create your replacement 215 2. **Enter the plugin's text domain** (e.g., `woocommerce`) 216 3. Text will ONLY be replaced when generated by that specific plugin 217 218 **Theme-Specific Replacement:** 219 1. Find your theme's text domain (check style.css) 220 2. Enter the theme text domain in the Text Domain field 221 3. Text will ONLY be replaced in theme-generated content 222 223 **When to Use Each:** 224 * **Global (empty text domain):** When you want to replace text regardless of source 225 * **Plugin-specific:** When text appears in multiple places but you only want to change it in one plugin 226 * **Theme-specific:** When replacing navigation, headers, footers, or theme-specific UI text 227 228 == How to Test Text Replacements Without Affecting Live Site == 229 230 Test your replacements safely before going live: 231 232 **Method 1: Use Enable/Disable Toggle** 233 1. Create your replacement with status **Inactive** 234 2. Save the replacement 235 3. Log out and view your site in an incognito window 236 4. Log back in and toggle to **Active** when ready 237 238 **Method 2: Test on Staging Site** 239 1. Create replacements on your staging site 240 2. Test thoroughly 241 3. Export via **Text Replace > Import/Export** 242 4. Import the JSON file on your live site 243 244 **Method 3: Use Priority to Test Incrementally** 245 1. Set test replacements to high priority (90-99) 246 2. This makes them easy to identify and remove 247 3. Once tested, adjust priority to normal (10) 248 249 **Pro Tip:** Always clear your cache after making changes, then test in an incognito/private browser window to see changes immediately. 250 251 == How to Export and Import Text Replacements == 252 253 Transfer your text replacements between sites easily: 254 255 **To Export:** 256 1. Go to **Text Replace > Import/Export** 257 2. Click **Export All Replacements** 258 3. A JSON file will download to your computer 259 4. This file contains all your active and inactive replacements 260 261 **To Import:** 262 1. Go to **Text Replace > Import/Export** on the destination site 263 2. Click **Choose File** and select your exported JSON file 264 3. Click **Import** 265 4. The plugin will automatically detect and skip duplicates 266 5. New replacements will be imported with all settings intact 267 268 **Use Cases for Import/Export:** 269 * Transfer replacements from staging to production 270 * Backup your replacements before major updates 271 * Share replacement configurations between multiple sites 272 * Migrate from one server to another 273 274 **Pro Tip:** Export your replacements monthly as a backup. Store the JSON file in your site backups. 275 276 == How to Find and Replace Text in WooCommerce Emails == 277 278 Customize WooCommerce email text without editing templates: 279 280 1. Identify the exact text in the email you want to change 281 2. Go to **Text Replace > Add New** 282 3. **Source String**: The email text (e.g., `Thank you for your order`) 283 4. **Replacement String**: Your custom text (e.g., `Thanks for shopping with us!`) 284 5. **Text Domain**: `woocommerce` 285 6. Status: **Active** 286 7. Save and send a test email 287 288 **Common WooCommerce Email Strings:** 289 * "Order received" → Your custom text 290 * "Payment method" → Your custom text 291 * "Billing address" → Your custom text 292 * "Order details" → Your custom text 293 294 **Testing:** Use WooCommerce > Settings > Emails > Send test email to verify changes. 109 295 110 296 = Developer Friendly = … … 119 305 * `etrp_after_replacement_apply` - Action after replacement 120 306 307 **Example: Programmatically Add Replacement** 308 309 ```php 310 add_filter('etrp_active_replacements', function($replacements) { 311 $replacements[] = array( 312 'source' => 'Add to cart', 313 'replacement' => 'Buy Now', 314 'text_domain' => 'woocommerce', 315 'case_sensitive' => false, 316 'priority' => 10 317 ); 318 return $replacements; 319 }); 320 ``` 321 121 322 = Support = 122 323 … … 129 330 1. Log in to your WordPress admin panel 130 331 2. Navigate to **Plugins > Add New** 131 3. Search for " EasyText Replace"332 3. Search for "Text Replace" 132 333 4. Click **Install Now** and then **Activate** 133 334 5. Go to **Text Replace** in your admin menu to start adding replacements … … 159 360 = Will this work with my theme? = 160 361 161 Yes! Easy Text Replace works with any WordPress theme by hooking into WordPress's translation system.362 Yes! Text Replace works with any WordPress theme by hooking into WordPress's translation system (gettext filter). 162 363 163 364 = Will this work with WooCommerce? = 164 365 165 Absolutely! It's perfect for customizing WooCommerce text like "Add to Cart", "Proceed to Checkout", and more. Just use "woocommerce" as the text domain .366 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. 166 367 167 368 = Does this affect site performance? = 168 369 169 Minimal impact. The plugin uses intelligent caching and executes only one database query per page load. Active replacements are cached for 24 hours .370 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. 170 371 171 372 = What happens when I update my theme or plugins? = 172 373 173 Your replacements remain intact! Since you're not modifying source files, updates won't affect your customizations.374 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. 174 375 175 376 = Can I replace HTML? = 176 377 177 The plugin is designed for text replacement. While it can replace simple HTML, it's recommended to use it for plain text strings .378 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. 178 379 179 380 = How do I find a plugin's text domain? = … … 185 386 * Elementor: `elementor` 186 387 388 See the "How to Find Text Domain for Any Plugin" section above for detailed instructions. 389 187 390 = What's the maximum number of replacements? = 188 391 … … 191 394 = Can I use regular expressions? = 192 395 193 Not in the current version. The plugin uses simple string matching for reliability and performance. 396 Not in the current version. The plugin uses simple string matching for reliability and performance. Regular expressions may be added in a future version. 194 397 195 398 = Why aren't my replacements appearing? = … … 201 404 4. Verify the source string matches exactly (check case sensitivity setting) 202 405 5. Make sure the text you're trying to replace is actually generated by WordPress, not hardcoded in templates 406 6. Check if another plugin or code is overriding the text after your replacement 203 407 204 408 = How do I clear the cache? = … … 210 414 = Can I export and import replacements? = 211 415 212 Yes! Go to **Text Replace > Import/Export** to export all replacements to a JSON file or import from a previously exported file. 416 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. 213 417 214 418 = Does this work with multilingual plugins? = 215 419 216 Yes, Easy Text Replace works alongside multilingual plugins like WPML and Polylang. The replacements are applied after translation.420 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. 217 421 218 422 = How do I prevent replacing text in other plugins? = 219 423 220 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. 424 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. 221 425 222 426 = Can I temporarily disable a replacement? = 223 427 224 Yes! Click the status toggle in the replacements list to switch between Active and Inactive without deleting the replacement. 428 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. 225 429 226 430 = What if I have multiple replacements that affect each other? = 227 431 228 Use the **Priority** field to control the order. Lower numbers (e.g., 1, 5) apply before higher numbers (e.g., 10, 20). 432 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. 229 433 230 434 = Is this compatible with page builders? = 231 435 232 Yes! Easy Text Replace works with Elementor, Beaver Builder, Divi, and other page builders for text generated by WordPress.436 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. 233 437 234 438 = Can I replace text in custom post types? = 235 439 236 Yes, as long as the text is generated through WordPress's translation system. 440 Yes, as long as the text is generated through WordPress's translation system (gettext), it can be replaced regardless of post type. 441 442 = Will this work with Gutenberg blocks? = 443 444 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. 445 446 = Can I replace text in plugin notifications? = 447 448 Yes! Use the plugin's text domain to target specific plugin notifications. This is useful for customizing admin notices, update messages, and error messages. 449 450 = Does this work with WordPress multisite? = 451 452 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. 453 454 = How do I know if a replacement is working? = 455 456 1. Make sure the replacement is set to **Active** 457 2. Clear all caches (plugin + site cache) 458 3. Log out and view your site in an incognito browser window 459 4. Search for the source text on the page - it should be replaced 460 5. Check browser inspector to verify the text in the HTML source 237 461 238 462 == Screenshots == 239 463 240 1. All Text Replacements - Manage all your text replacements in one place with search, sort, and bulk actions241 2. Add New Replacement - Simple form to create new text replacements with all options242 3. Text Domain Tooltip - How to find and use text domains to target specific plugins or themes243 4. Import/Export - Backup and transfer your replacement configurations between sites464 1. Text replacement dashboard - Find and replace strings with search, sorting, and bulk operations for WordPress sites 465 2. Add new text replacement - Replace WooCommerce buttons, form labels, and theme text without coding 466 3. Text domain filtering - Target specific plugins like WooCommerce or Contact Form 7 for precise string replacement 467 4. Import/Export replacements - Transfer find and replace configurations between WordPress sites with JSON backup 244 468 245 469 == Changelog == 470 = 1.0.3 - 2025-12-30 = 471 * Update: Compatibility 246 472 247 473 = 1.0.2 - 2025-12-16 = 248 474 * Updated: Tested up to WordPress 6.9 249 * Improved: Removed replacement limit - now supports unlimited replacements475 * Improved: Removed replacement limit - now supports unlimited text replacements 250 476 * Enhanced: One-click cache clearing from Import/Export page 251 * Optimized: Better performance with large numbers of replacements 477 * Optimized: Better performance with large numbers of string replacements 478 * Added: Improved compatibility with WooCommerce 9.x 479 * Fixed: Text domain filtering for edge cases 252 480 253 481 = 1.0.1 - 2025-11-15 = 254 482 * Fixed: Minor bug fixes and improvements 255 * Updated: Enhanced security checks 483 * Updated: Enhanced security checks for text replacement operations 484 * Improved: Better handling of special characters in find and replace strings 256 485 257 486 = 1.0.0 - 2025-10-25 = 258 487 * Initial release 259 488 * String replacement functionality with text domain filtering 260 * Priority ordering system for multiple replacements489 * Priority ordering system for multiple text replacements 261 490 * Case-sensitive and case-insensitive matching 262 491 * Enable/disable toggle for individual replacements 263 * Bulk operations (enable, disable, delete )492 * Bulk operations (enable, disable, delete multiple replacements) 264 493 * Import/export functionality with JSON format 265 494 * Performance optimization with intelligent caching 266 495 * WordPress coding standards compliance 267 496 * Security hardening with nonce verification and capability checks 497 * Integration with WordPress gettext system for reliable text replacement 268 498 269 499 == Upgrade Notice == 500 = 1.0.3 = 501 Update compatibility with the WordPress version. 270 502 271 503 = 1.0.2 = 272 Unlimited replacements now supported! Updated for WordPress 6.9 with improved performance and one-click cache clearing.504 Unlimited text replacements now supported! Updated for WordPress 6.9 with improved performance and one-click cache clearing. 273 505 274 506 = 1.0.1 = 275 Minor bug fixes and security improvements .507 Minor bug fixes and security improvements for text replacement operations. 276 508 277 509 = 1.0.0 = 278 Initial release of Easy Text Replace. Install to start customizing text on your WordPress site without editing code.510 Initial release of Text Replace. Install to start finding and replacing text on your WordPress site without editing code. 279 511 280 512 == Privacy Policy == 281 513 282 EasyText Replace does not collect, store, or transmit any personal data. All replacement configurations are stored locally in your WordPress database.514 Text Replace does not collect, store, or transmit any personal data. All replacement configurations are stored locally in your WordPress database. 283 515 284 516 == Credits == … … 293 525 == Translations == 294 526 295 EasyText Replace is translation-ready and includes:527 Text Replace is translation-ready and includes: 296 528 English (default) 297 529 298 Want to translate EasyText Replace into your language? Visit [WordPress Translate](https://translate.wordpress.org/projects/wp-plugins/easy-text-replace/).530 Want to translate Text Replace into your language? Visit [WordPress Translate](https://translate.wordpress.org/projects/wp-plugins/easy-text-replace/). -
easy-text-replace/tags/1.0.3/vendor/composer/installed.php
r3420701 r3429459 2 2 'root' => array( 3 3 'name' => 'shsajalchowdhury/easy-text-replace', 4 'pretty_version' => '1.0. 2',5 'version' => '1.0. 2.0',6 'reference' => ' a5c20857e57d0677db3fc0e074329b896a0fa8d4',4 'pretty_version' => '1.0.3', 5 'version' => '1.0.3.0', 6 'reference' => 'ee0dfce7e6dd65e1c01a071be164ee7d0bf11d66', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 21 21 ), 22 22 'shsajalchowdhury/easy-text-replace' => array( 23 'pretty_version' => '1.0. 2',24 'version' => '1.0. 2.0',25 'reference' => ' a5c20857e57d0677db3fc0e074329b896a0fa8d4',23 'pretty_version' => '1.0.3', 24 'version' => '1.0.3.0', 25 'reference' => 'ee0dfce7e6dd65e1c01a071be164ee7d0bf11d66', 26 26 'type' => 'wordpress-plugin', 27 27 'install_path' => __DIR__ . '/../../', -
easy-text-replace/trunk/easy-text-replace.php
r3420701 r3429459 4 4 * Plugin URI: https://wordpress.org/plugins/easy-text-replace/ 5 5 * Description: Lightweight WordPress string replacement plugin that allows administrators to replace strings from themes, plugins, and WordPress core with minimal performance impact. 6 * Version: 1.0. 26 * Version: 1.0.3 7 7 * Author: SH Sajal Chowdhury 8 8 * Author URI: https://easywptools.com -
easy-text-replace/trunk/readme.txt
r3420701 r3429459 1 === Easy Text Replace - Change Text Without Code===1 === Text Replace - Find and Replace WordPress Strings === 2 2 Contributors: shsajalchowdhury 3 Tags: change, string, customize text, change text, translation3 Tags: text-replace, find-and-replace, string-replacement, woocommerce, gettext 4 4 Requires at least: 5.8 5 5 Tested up to: 6.9 6 6 Requires PHP: 7.4 7 Stable tag: 1.0. 27 Stable tag: 1.0.3 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html 10 10 11 Customize WooCommerce, forms & WordPress text instantly. Replace strings without coding. Update-safe, cached, SEO-friendly text replacement.11 Find and replace any WordPress text without coding. Change WooCommerce buttons, form labels, and theme text. Update-safe and cached. 12 12 13 13 == Description == 14 14 15 ** Easy Text Replace** is a lightweight, performance-optimized WordPress plugin that allows you to replace any text string on your website without modifying theme or plugin files. Perfect for customizing WooCommerce buttons, changing WordPresslabels, or personalizing any text across your site.16 17 = Why Choose EasyText Replace? =18 19 * **No Code Editing Required** - Change text without touching theme or plugin files20 * **Update-Safe** - Your customizations survive theme and plugin updates15 **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. 16 17 = Why Choose Text Replace? = 18 19 * **No Code Editing Required** - Find and replace text without touching theme or plugin files 20 * **Update-Safe** - Your string replacements survive theme and plugin updates 21 21 * **Performance Optimized** - Single database query per page load with intelligent caching 22 22 * **Text Domain Filtering** - Target specific plugins, themes, or apply changes globally 23 * **Priority Control** - Manage the order of multiple replacements23 * **Priority Control** - Manage the order of multiple text replacements 24 24 * **Bulk Operations** - Enable, disable, or delete multiple replacements at once 25 25 * **Import/Export** - Transfer configurations between sites easily … … 39 39 40 40 **Simple String Replacement** 41 Replace any text from themes, plugins, or WordPress core with just a few clicks. No coding knowledge required.41 Find and replace any text from themes, plugins, or WordPress core with just a few clicks. No coding knowledge required. 42 42 43 43 **Text Domain Filtering** … … 71 71 72 72 == Search & Sort == 73 Easily find and organize your replacements with built-in search and sorting capabilities.73 Easily find and organize your text replacements with built-in search and sorting capabilities. 74 74 75 75 = Use Cases = 76 76 77 == E-CommerceCustomization ==77 == WooCommerce Text Customization == 78 78 * Change "Add to Cart" to "Add to Bag" or "Buy Now" 79 79 * Modify "Proceed to Checkout" to "Complete Purchase" 80 80 * Customize product page labels 81 81 * Personalize shipping and payment text 82 83 == Form Customization == 84 * Change Contact Form 7 submit button text 82 * Replace price labels and currency text 83 * Modify sale badge text 84 85 == Contact Form 7 Customization == 86 * Change submit button text 85 87 * Modify form field labels 86 88 * Customize validation messages 87 89 * Personalize success messages 88 89 == WordPress Core Customization == 90 * Replace error message text 91 92 == WordPress Core Text Replacement == 90 93 * Replace "Howdy" in admin bar 91 94 * Change "Dashboard" to "Control Panel" 92 95 * Modify menu labels 93 96 * Customize admin notices 94 95 == Theme Customization == 97 * Replace login page text 98 99 == Theme Text Customization == 96 100 * Change "Read More" links 97 101 * Modify navigation labels 98 102 * Customize footer text 99 103 * Personalize call-to-action buttons 104 * Replace copyright text 100 105 101 106 = How It Works = 102 107 103 EasyText Replace hooks into WordPress's translation system (gettext) to intercept and replace text strings before they're displayed. This means:108 Text Replace hooks into WordPress's translation system (gettext) to intercept and replace text strings before they're displayed. This means: 104 109 105 110 1. **No file modifications** - Your theme and plugin files remain untouched 106 2. **Update-safe** - Replacements persist through updates111 2. **Update-safe** - String replacements persist through updates 107 112 3. **Reversible** - Simply disable or delete replacements to restore original text 108 113 4. **Efficient** - Replacements are cached for optimal performance 114 115 == How to Change WooCommerce "Add to Cart" Text == 116 117 One of the most common uses for Text Replace is customizing WooCommerce button text. Here's how: 118 119 1. Navigate to **Text Replace > Add New** in your WordPress admin 120 2. In the **Source String** field, enter: `Add to cart` 121 3. In the **Replacement String** field, enter your desired text (e.g., `Buy Now`) 122 4. In the **Text Domain** field, enter: `woocommerce` 123 5. Leave **Case Sensitive** unchecked (default) 124 6. Set **Priority** to 10 (default) 125 7. Make sure status is set to **Active** 126 8. Click **Save Replacement** 127 9. Clear your site cache if using a caching plugin 128 10. Visit a WooCommerce product page to see the change 129 130 **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. 131 132 == How to Replace Contact Form 7 Button Labels == 133 134 Customize Contact Form 7 submit buttons without editing form code: 135 136 1. Go to **Text Replace > Add New** 137 2. **Source String**: `Send` (or your current button text) 138 3. **Replacement String**: Your desired button text (e.g., `Submit Message`) 139 4. **Text Domain**: `contact-form-7` 140 5. Status: **Active** 141 6. Click **Save Replacement** 142 7. Clear cache and test your contact form 143 144 **Note:** If you have multiple forms with different button text, create separate replacements for each or leave Text Domain empty to replace globally. 145 146 == How to Customize Theme Text Without Editing Files == 147 148 Replace any theme text without touching template files: 149 150 1. First, identify the exact text you want to replace (copy it exactly as it appears) 151 2. Navigate to **Text Replace > Add New** 152 3. **Source String**: The exact theme text (e.g., `Read More`) 153 4. **Replacement String**: Your new text (e.g., `Continue Reading`) 154 5. **Text Domain**: Leave empty for global replacement, or enter your theme's text domain 155 6. Enable **Case Sensitive** if exact capitalization matters 156 7. Status: **Active** 157 8. Save and clear cache 158 159 **Finding Your Theme's Text Domain:** Check your theme's style.css file header for the "Text Domain" field. 160 161 == How to Find Text Domain for Any Plugin == 162 163 To target a specific plugin with text replacement, you need its text domain: 164 165 **Method 1: Check Plugin Main File** 166 1. Go to Plugins > Plugin File Editor 167 2. Select the plugin from dropdown 168 3. Look for `Text Domain:` in the file header at the top 169 4. Copy the text domain value 170 171 **Method 2: Check Translation Files** 172 1. Navigate to `/wp-content/plugins/[plugin-name]/languages/` 173 2. Look for .po or .pot files 174 3. The filename usually contains the text domain (e.g., `woocommerce-en_US.po` = text domain is `woocommerce`) 175 176 **Method 3: Common Plugin Text Domains** 177 * WooCommerce: `woocommerce` 178 * Contact Form 7: `contact-form-7` 179 * Yoast SEO: `wordpress-seo` 180 * Elementor: `elementor` 181 * Advanced Custom Fields: `acf` 182 * Gravity Forms: `gravityforms` 183 184 **Pro Tip:** If you can't find the text domain, leave it blank to replace the text globally across your entire site. 185 186 == How to Set Up Multiple Text Replacements == 187 188 When you need to replace several strings, use priority to control the order: 189 190 1. **Plan your replacements** - List all the text you want to change 191 2. **Create each replacement** - Go to Text Replace > Add New for each one 192 3. **Set priorities:** 193 - Use priority 10 for most replacements (default) 194 - Use lower numbers (1-9) for replacements that should happen first 195 - Use higher numbers (11-99) for replacements that depend on others 196 4. **Use Text Domain filtering** - Specify text domain to avoid conflicts 197 5. **Test in stages** - Enable a few at a time to verify they work correctly 198 199 **Example Priority Setup:** 200 * Priority 5: Replace "product" with "item" (happens first) 201 * Priority 10: Replace "Add to cart" with "Buy Now" (normal priority) 202 * Priority 15: Replace "item price" with "cost" (happens after priority 5 and 10) 203 204 == How to Replace Text Site-Wide vs Plugin-Specific == 205 206 Control where your text replacements apply: 207 208 **Site-Wide Replacement (Global):** 209 1. Create your replacement as normal 210 2. **Leave Text Domain field EMPTY** 211 3. This will replace the text everywhere it appears on your site 212 213 **Plugin-Specific Replacement:** 214 1. Create your replacement 215 2. **Enter the plugin's text domain** (e.g., `woocommerce`) 216 3. Text will ONLY be replaced when generated by that specific plugin 217 218 **Theme-Specific Replacement:** 219 1. Find your theme's text domain (check style.css) 220 2. Enter the theme text domain in the Text Domain field 221 3. Text will ONLY be replaced in theme-generated content 222 223 **When to Use Each:** 224 * **Global (empty text domain):** When you want to replace text regardless of source 225 * **Plugin-specific:** When text appears in multiple places but you only want to change it in one plugin 226 * **Theme-specific:** When replacing navigation, headers, footers, or theme-specific UI text 227 228 == How to Test Text Replacements Without Affecting Live Site == 229 230 Test your replacements safely before going live: 231 232 **Method 1: Use Enable/Disable Toggle** 233 1. Create your replacement with status **Inactive** 234 2. Save the replacement 235 3. Log out and view your site in an incognito window 236 4. Log back in and toggle to **Active** when ready 237 238 **Method 2: Test on Staging Site** 239 1. Create replacements on your staging site 240 2. Test thoroughly 241 3. Export via **Text Replace > Import/Export** 242 4. Import the JSON file on your live site 243 244 **Method 3: Use Priority to Test Incrementally** 245 1. Set test replacements to high priority (90-99) 246 2. This makes them easy to identify and remove 247 3. Once tested, adjust priority to normal (10) 248 249 **Pro Tip:** Always clear your cache after making changes, then test in an incognito/private browser window to see changes immediately. 250 251 == How to Export and Import Text Replacements == 252 253 Transfer your text replacements between sites easily: 254 255 **To Export:** 256 1. Go to **Text Replace > Import/Export** 257 2. Click **Export All Replacements** 258 3. A JSON file will download to your computer 259 4. This file contains all your active and inactive replacements 260 261 **To Import:** 262 1. Go to **Text Replace > Import/Export** on the destination site 263 2. Click **Choose File** and select your exported JSON file 264 3. Click **Import** 265 4. The plugin will automatically detect and skip duplicates 266 5. New replacements will be imported with all settings intact 267 268 **Use Cases for Import/Export:** 269 * Transfer replacements from staging to production 270 * Backup your replacements before major updates 271 * Share replacement configurations between multiple sites 272 * Migrate from one server to another 273 274 **Pro Tip:** Export your replacements monthly as a backup. Store the JSON file in your site backups. 275 276 == How to Find and Replace Text in WooCommerce Emails == 277 278 Customize WooCommerce email text without editing templates: 279 280 1. Identify the exact text in the email you want to change 281 2. Go to **Text Replace > Add New** 282 3. **Source String**: The email text (e.g., `Thank you for your order`) 283 4. **Replacement String**: Your custom text (e.g., `Thanks for shopping with us!`) 284 5. **Text Domain**: `woocommerce` 285 6. Status: **Active** 286 7. Save and send a test email 287 288 **Common WooCommerce Email Strings:** 289 * "Order received" → Your custom text 290 * "Payment method" → Your custom text 291 * "Billing address" → Your custom text 292 * "Order details" → Your custom text 293 294 **Testing:** Use WooCommerce > Settings > Emails > Send test email to verify changes. 109 295 110 296 = Developer Friendly = … … 119 305 * `etrp_after_replacement_apply` - Action after replacement 120 306 307 **Example: Programmatically Add Replacement** 308 309 ```php 310 add_filter('etrp_active_replacements', function($replacements) { 311 $replacements[] = array( 312 'source' => 'Add to cart', 313 'replacement' => 'Buy Now', 314 'text_domain' => 'woocommerce', 315 'case_sensitive' => false, 316 'priority' => 10 317 ); 318 return $replacements; 319 }); 320 ``` 321 121 322 = Support = 122 323 … … 129 330 1. Log in to your WordPress admin panel 130 331 2. Navigate to **Plugins > Add New** 131 3. Search for " EasyText Replace"332 3. Search for "Text Replace" 132 333 4. Click **Install Now** and then **Activate** 133 334 5. Go to **Text Replace** in your admin menu to start adding replacements … … 159 360 = Will this work with my theme? = 160 361 161 Yes! Easy Text Replace works with any WordPress theme by hooking into WordPress's translation system.362 Yes! Text Replace works with any WordPress theme by hooking into WordPress's translation system (gettext filter). 162 363 163 364 = Will this work with WooCommerce? = 164 365 165 Absolutely! It's perfect for customizing WooCommerce text like "Add to Cart", "Proceed to Checkout", and more. Just use "woocommerce" as the text domain .366 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. 166 367 167 368 = Does this affect site performance? = 168 369 169 Minimal impact. The plugin uses intelligent caching and executes only one database query per page load. Active replacements are cached for 24 hours .370 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. 170 371 171 372 = What happens when I update my theme or plugins? = 172 373 173 Your replacements remain intact! Since you're not modifying source files, updates won't affect your customizations.374 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. 174 375 175 376 = Can I replace HTML? = 176 377 177 The plugin is designed for text replacement. While it can replace simple HTML, it's recommended to use it for plain text strings .378 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. 178 379 179 380 = How do I find a plugin's text domain? = … … 185 386 * Elementor: `elementor` 186 387 388 See the "How to Find Text Domain for Any Plugin" section above for detailed instructions. 389 187 390 = What's the maximum number of replacements? = 188 391 … … 191 394 = Can I use regular expressions? = 192 395 193 Not in the current version. The plugin uses simple string matching for reliability and performance. 396 Not in the current version. The plugin uses simple string matching for reliability and performance. Regular expressions may be added in a future version. 194 397 195 398 = Why aren't my replacements appearing? = … … 201 404 4. Verify the source string matches exactly (check case sensitivity setting) 202 405 5. Make sure the text you're trying to replace is actually generated by WordPress, not hardcoded in templates 406 6. Check if another plugin or code is overriding the text after your replacement 203 407 204 408 = How do I clear the cache? = … … 210 414 = Can I export and import replacements? = 211 415 212 Yes! Go to **Text Replace > Import/Export** to export all replacements to a JSON file or import from a previously exported file. 416 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. 213 417 214 418 = Does this work with multilingual plugins? = 215 419 216 Yes, Easy Text Replace works alongside multilingual plugins like WPML and Polylang. The replacements are applied after translation.420 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. 217 421 218 422 = How do I prevent replacing text in other plugins? = 219 423 220 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. 424 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. 221 425 222 426 = Can I temporarily disable a replacement? = 223 427 224 Yes! Click the status toggle in the replacements list to switch between Active and Inactive without deleting the replacement. 428 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. 225 429 226 430 = What if I have multiple replacements that affect each other? = 227 431 228 Use the **Priority** field to control the order. Lower numbers (e.g., 1, 5) apply before higher numbers (e.g., 10, 20). 432 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. 229 433 230 434 = Is this compatible with page builders? = 231 435 232 Yes! Easy Text Replace works with Elementor, Beaver Builder, Divi, and other page builders for text generated by WordPress.436 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. 233 437 234 438 = Can I replace text in custom post types? = 235 439 236 Yes, as long as the text is generated through WordPress's translation system. 440 Yes, as long as the text is generated through WordPress's translation system (gettext), it can be replaced regardless of post type. 441 442 = Will this work with Gutenberg blocks? = 443 444 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. 445 446 = Can I replace text in plugin notifications? = 447 448 Yes! Use the plugin's text domain to target specific plugin notifications. This is useful for customizing admin notices, update messages, and error messages. 449 450 = Does this work with WordPress multisite? = 451 452 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. 453 454 = How do I know if a replacement is working? = 455 456 1. Make sure the replacement is set to **Active** 457 2. Clear all caches (plugin + site cache) 458 3. Log out and view your site in an incognito browser window 459 4. Search for the source text on the page - it should be replaced 460 5. Check browser inspector to verify the text in the HTML source 237 461 238 462 == Screenshots == 239 463 240 1. All Text Replacements - Manage all your text replacements in one place with search, sort, and bulk actions241 2. Add New Replacement - Simple form to create new text replacements with all options242 3. Text Domain Tooltip - How to find and use text domains to target specific plugins or themes243 4. Import/Export - Backup and transfer your replacement configurations between sites464 1. Text replacement dashboard - Find and replace strings with search, sorting, and bulk operations for WordPress sites 465 2. Add new text replacement - Replace WooCommerce buttons, form labels, and theme text without coding 466 3. Text domain filtering - Target specific plugins like WooCommerce or Contact Form 7 for precise string replacement 467 4. Import/Export replacements - Transfer find and replace configurations between WordPress sites with JSON backup 244 468 245 469 == Changelog == 470 = 1.0.3 - 2025-12-30 = 471 * Update: Compatibility 246 472 247 473 = 1.0.2 - 2025-12-16 = 248 474 * Updated: Tested up to WordPress 6.9 249 * Improved: Removed replacement limit - now supports unlimited replacements475 * Improved: Removed replacement limit - now supports unlimited text replacements 250 476 * Enhanced: One-click cache clearing from Import/Export page 251 * Optimized: Better performance with large numbers of replacements 477 * Optimized: Better performance with large numbers of string replacements 478 * Added: Improved compatibility with WooCommerce 9.x 479 * Fixed: Text domain filtering for edge cases 252 480 253 481 = 1.0.1 - 2025-11-15 = 254 482 * Fixed: Minor bug fixes and improvements 255 * Updated: Enhanced security checks 483 * Updated: Enhanced security checks for text replacement operations 484 * Improved: Better handling of special characters in find and replace strings 256 485 257 486 = 1.0.0 - 2025-10-25 = 258 487 * Initial release 259 488 * String replacement functionality with text domain filtering 260 * Priority ordering system for multiple replacements489 * Priority ordering system for multiple text replacements 261 490 * Case-sensitive and case-insensitive matching 262 491 * Enable/disable toggle for individual replacements 263 * Bulk operations (enable, disable, delete )492 * Bulk operations (enable, disable, delete multiple replacements) 264 493 * Import/export functionality with JSON format 265 494 * Performance optimization with intelligent caching 266 495 * WordPress coding standards compliance 267 496 * Security hardening with nonce verification and capability checks 497 * Integration with WordPress gettext system for reliable text replacement 268 498 269 499 == Upgrade Notice == 500 = 1.0.3 = 501 Update compatibility with the WordPress version. 270 502 271 503 = 1.0.2 = 272 Unlimited replacements now supported! Updated for WordPress 6.9 with improved performance and one-click cache clearing.504 Unlimited text replacements now supported! Updated for WordPress 6.9 with improved performance and one-click cache clearing. 273 505 274 506 = 1.0.1 = 275 Minor bug fixes and security improvements .507 Minor bug fixes and security improvements for text replacement operations. 276 508 277 509 = 1.0.0 = 278 Initial release of Easy Text Replace. Install to start customizing text on your WordPress site without editing code.510 Initial release of Text Replace. Install to start finding and replacing text on your WordPress site without editing code. 279 511 280 512 == Privacy Policy == 281 513 282 EasyText Replace does not collect, store, or transmit any personal data. All replacement configurations are stored locally in your WordPress database.514 Text Replace does not collect, store, or transmit any personal data. All replacement configurations are stored locally in your WordPress database. 283 515 284 516 == Credits == … … 293 525 == Translations == 294 526 295 EasyText Replace is translation-ready and includes:527 Text Replace is translation-ready and includes: 296 528 English (default) 297 529 298 Want to translate EasyText Replace into your language? Visit [WordPress Translate](https://translate.wordpress.org/projects/wp-plugins/easy-text-replace/).530 Want to translate Text Replace into your language? Visit [WordPress Translate](https://translate.wordpress.org/projects/wp-plugins/easy-text-replace/). -
easy-text-replace/trunk/vendor/composer/installed.php
r3420701 r3429459 2 2 'root' => array( 3 3 'name' => 'shsajalchowdhury/easy-text-replace', 4 'pretty_version' => '1.0. 2',5 'version' => '1.0. 2.0',6 'reference' => ' a5c20857e57d0677db3fc0e074329b896a0fa8d4',4 'pretty_version' => '1.0.3', 5 'version' => '1.0.3.0', 6 'reference' => 'ee0dfce7e6dd65e1c01a071be164ee7d0bf11d66', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 21 21 ), 22 22 'shsajalchowdhury/easy-text-replace' => array( 23 'pretty_version' => '1.0. 2',24 'version' => '1.0. 2.0',25 'reference' => ' a5c20857e57d0677db3fc0e074329b896a0fa8d4',23 'pretty_version' => '1.0.3', 24 'version' => '1.0.3.0', 25 'reference' => 'ee0dfce7e6dd65e1c01a071be164ee7d0bf11d66', 26 26 'type' => 'wordpress-plugin', 27 27 'install_path' => __DIR__ . '/../../',
Note: See TracChangeset
for help on using the changeset viewer.