Plugin Directory

Changeset 3429459


Ignore:
Timestamp:
12/30/2025 06:52:53 AM (2 weeks ago)
Author:
shsajalchowdhury
Message:

Update to version 1.0.3 from GitHub

Location:
easy-text-replace
Files:
6 edited
1 copied

Legend:

Unmodified
Added
Removed
  • easy-text-replace/tags/1.0.3/easy-text-replace.php

    r3420701 r3429459  
    44 * Plugin URI: https://wordpress.org/plugins/easy-text-replace/
    55 * 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.2
     6 * Version: 1.0.3
    77 * Author: SH Sajal Chowdhury
    88 * 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 ===
    22Contributors: shsajalchowdhury
    3 Tags: change, string, customize text, change text, translation
     3Tags: text-replace, find-and-replace, string-replacement, woocommerce, gettext
    44Requires at least: 5.8
    55Tested up to: 6.9
    66Requires PHP: 7.4
    7 Stable tag: 1.0.2
     7Stable tag: 1.0.3
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    1010
    11 Customize WooCommerce, forms & WordPress text instantly. Replace strings without coding. Update-safe, cached, SEO-friendly text replacement.
     11Find and replace any WordPress text without coding. Change WooCommerce buttons, form labels, and theme text. Update-safe and cached.
    1212
    1313== Description ==
    1414
    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 WordPress labels, or personalizing any text across your site.
    16 
    17 = Why Choose Easy Text Replace? =
    18 
    19 * **No Code Editing Required** - Change text without touching theme or plugin files
    20 * **Update-Safe** - Your customizations survive theme and plugin updates
     15**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
    2121* **Performance Optimized** - Single database query per page load with intelligent caching
    2222* **Text Domain Filtering** - Target specific plugins, themes, or apply changes globally
    23 * **Priority Control** - Manage the order of multiple replacements
     23* **Priority Control** - Manage the order of multiple text replacements
    2424* **Bulk Operations** - Enable, disable, or delete multiple replacements at once
    2525* **Import/Export** - Transfer configurations between sites easily
     
    3939
    4040**Simple String Replacement**
    41 Replace any text from themes, plugins, or WordPress core with just a few clicks. No coding knowledge required.
     41Find and replace any text from themes, plugins, or WordPress core with just a few clicks. No coding knowledge required.
    4242
    4343**Text Domain Filtering**
     
    7171
    7272== Search & Sort ==
    73 Easily find and organize your replacements with built-in search and sorting capabilities.
     73Easily find and organize your text replacements with built-in search and sorting capabilities.
    7474
    7575= Use Cases =
    7676
    77 == E-Commerce Customization ==
     77== WooCommerce Text Customization ==
    7878* Change "Add to Cart" to "Add to Bag" or "Buy Now"
    7979* Modify "Proceed to Checkout" to "Complete Purchase"
    8080* Customize product page labels
    8181* 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
    8587* Modify form field labels
    8688* Customize validation messages
    8789* Personalize success messages
    88 
    89 == WordPress Core Customization ==
     90* Replace error message text
     91
     92== WordPress Core Text Replacement ==
    9093* Replace "Howdy" in admin bar
    9194* Change "Dashboard" to "Control Panel"
    9295* Modify menu labels
    9396* Customize admin notices
    94 
    95 == Theme Customization ==
     97* Replace login page text
     98
     99== Theme Text Customization ==
    96100* Change "Read More" links
    97101* Modify navigation labels
    98102* Customize footer text
    99103* Personalize call-to-action buttons
     104* Replace copyright text
    100105
    101106= How It Works =
    102107
    103 Easy Text Replace hooks into WordPress's translation system (gettext) to intercept and replace text strings before they're displayed. This means:
     108Text Replace hooks into WordPress's translation system (gettext) to intercept and replace text strings before they're displayed. This means:
    104109
    1051101. **No file modifications** - Your theme and plugin files remain untouched
    106 2. **Update-safe** - Replacements persist through updates
     1112. **Update-safe** - String replacements persist through updates
    1071123. **Reversible** - Simply disable or delete replacements to restore original text
    1081134. **Efficient** - Replacements are cached for optimal performance
     114
     115== How to Change WooCommerce "Add to Cart" Text ==
     116
     117One of the most common uses for Text Replace is customizing WooCommerce button text. Here's how:
     118
     1191. Navigate to **Text Replace > Add New** in your WordPress admin
     1202. In the **Source String** field, enter: `Add to cart`
     1213. In the **Replacement String** field, enter your desired text (e.g., `Buy Now`)
     1224. In the **Text Domain** field, enter: `woocommerce`
     1235. Leave **Case Sensitive** unchecked (default)
     1246. Set **Priority** to 10 (default)
     1257. Make sure status is set to **Active**
     1268. Click **Save Replacement**
     1279. Clear your site cache if using a caching plugin
     12810. 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
     134Customize Contact Form 7 submit buttons without editing form code:
     135
     1361. Go to **Text Replace > Add New**
     1372. **Source String**: `Send` (or your current button text)
     1383. **Replacement String**: Your desired button text (e.g., `Submit Message`)
     1394. **Text Domain**: `contact-form-7`
     1405. Status: **Active**
     1416. Click **Save Replacement**
     1427. 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
     148Replace any theme text without touching template files:
     149
     1501. First, identify the exact text you want to replace (copy it exactly as it appears)
     1512. Navigate to **Text Replace > Add New**
     1523. **Source String**: The exact theme text (e.g., `Read More`)
     1534. **Replacement String**: Your new text (e.g., `Continue Reading`)
     1545. **Text Domain**: Leave empty for global replacement, or enter your theme's text domain
     1556. Enable **Case Sensitive** if exact capitalization matters
     1567. Status: **Active**
     1578. 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
     163To target a specific plugin with text replacement, you need its text domain:
     164
     165**Method 1: Check Plugin Main File**
     1661. Go to Plugins > Plugin File Editor
     1672. Select the plugin from dropdown
     1683. Look for `Text Domain:` in the file header at the top
     1694. Copy the text domain value
     170
     171**Method 2: Check Translation Files**
     1721. Navigate to `/wp-content/plugins/[plugin-name]/languages/`
     1732. Look for .po or .pot files
     1743. 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
     188When you need to replace several strings, use priority to control the order:
     189
     1901. **Plan your replacements** - List all the text you want to change
     1912. **Create each replacement** - Go to Text Replace > Add New for each one
     1923. **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
     1964. **Use Text Domain filtering** - Specify text domain to avoid conflicts
     1975. **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
     206Control where your text replacements apply:
     207
     208**Site-Wide Replacement (Global):**
     2091. Create your replacement as normal
     2102. **Leave Text Domain field EMPTY**
     2113. This will replace the text everywhere it appears on your site
     212
     213**Plugin-Specific Replacement:**
     2141. Create your replacement
     2152. **Enter the plugin's text domain** (e.g., `woocommerce`)
     2163. Text will ONLY be replaced when generated by that specific plugin
     217
     218**Theme-Specific Replacement:**
     2191. Find your theme's text domain (check style.css)
     2202. Enter the theme text domain in the Text Domain field
     2213. 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
     230Test your replacements safely before going live:
     231
     232**Method 1: Use Enable/Disable Toggle**
     2331. Create your replacement with status **Inactive**
     2342. Save the replacement
     2353. Log out and view your site in an incognito window
     2364. Log back in and toggle to **Active** when ready
     237
     238**Method 2: Test on Staging Site**
     2391. Create replacements on your staging site
     2402. Test thoroughly
     2413. Export via **Text Replace > Import/Export**
     2424. Import the JSON file on your live site
     243
     244**Method 3: Use Priority to Test Incrementally**
     2451. Set test replacements to high priority (90-99)
     2462. This makes them easy to identify and remove
     2473. 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
     253Transfer your text replacements between sites easily:
     254
     255**To Export:**
     2561. Go to **Text Replace > Import/Export**
     2572. Click **Export All Replacements**
     2583. A JSON file will download to your computer
     2594. This file contains all your active and inactive replacements
     260
     261**To Import:**
     2621. Go to **Text Replace > Import/Export** on the destination site
     2632. Click **Choose File** and select your exported JSON file
     2643. Click **Import**
     2654. The plugin will automatically detect and skip duplicates
     2665. 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
     278Customize WooCommerce email text without editing templates:
     279
     2801. Identify the exact text in the email you want to change
     2812. Go to **Text Replace > Add New**
     2823. **Source String**: The email text (e.g., `Thank you for your order`)
     2834. **Replacement String**: Your custom text (e.g., `Thanks for shopping with us!`)
     2845. **Text Domain**: `woocommerce`
     2856. Status: **Active**
     2867. 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.
    109295
    110296= Developer Friendly =
     
    119305* `etrp_after_replacement_apply` - Action after replacement
    120306
     307**Example: Programmatically Add Replacement**
     308
     309```php
     310add_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
    121322= Support =
    122323
     
    1293301. Log in to your WordPress admin panel
    1303312. Navigate to **Plugins > Add New**
    131 3. Search for "Easy Text Replace"
     3323. Search for "Text Replace"
    1323334. Click **Install Now** and then **Activate**
    1333345. Go to **Text Replace** in your admin menu to start adding replacements
     
    159360= Will this work with my theme? =
    160361
    161 Yes! Easy Text Replace works with any WordPress theme by hooking into WordPress's translation system.
     362Yes! Text Replace works with any WordPress theme by hooking into WordPress's translation system (gettext filter).
    162363
    163364= Will this work with WooCommerce? =
    164365
    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.
     366Absolutely! 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.
    166367
    167368= Does this affect site performance? =
    168369
    169 Minimal impact. The plugin uses intelligent caching and executes only one database query per page load. Active replacements are cached for 24 hours.
     370Minimal 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.
    170371
    171372= What happens when I update my theme or plugins? =
    172373
    173 Your replacements remain intact! Since you're not modifying source files, updates won't affect your customizations.
     374Your 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.
    174375
    175376= Can I replace HTML? =
    176377
    177 The plugin is designed for text replacement. While it can replace simple HTML, it's recommended to use it for plain text strings.
     378The 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.
    178379
    179380= How do I find a plugin's text domain? =
     
    185386* Elementor: `elementor`
    186387
     388See the "How to Find Text Domain for Any Plugin" section above for detailed instructions.
     389
    187390= What's the maximum number of replacements? =
    188391
     
    191394= Can I use regular expressions? =
    192395
    193 Not in the current version. The plugin uses simple string matching for reliability and performance.
     396Not in the current version. The plugin uses simple string matching for reliability and performance. Regular expressions may be added in a future version.
    194397
    195398= Why aren't my replacements appearing? =
     
    2014044. Verify the source string matches exactly (check case sensitivity setting)
    2024055. Make sure the text you're trying to replace is actually generated by WordPress, not hardcoded in templates
     4066. Check if another plugin or code is overriding the text after your replacement
    203407
    204408= How do I clear the cache? =
     
    210414= Can I export and import replacements? =
    211415
    212 Yes! Go to **Text Replace > Import/Export** to export all replacements to a JSON file or import from a previously exported file.
     416Yes! 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.
    213417
    214418= Does this work with multilingual plugins? =
    215419
    216 Yes, Easy Text Replace works alongside multilingual plugins like WPML and Polylang. The replacements are applied after translation.
     420Yes, 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.
    217421
    218422= How do I prevent replacing text in other plugins? =
    219423
    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.
     424Use 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.
    221425
    222426= Can I temporarily disable a replacement? =
    223427
    224 Yes! Click the status toggle in the replacements list to switch between Active and Inactive without deleting the replacement.
     428Yes! Click the status toggle in the replacements list to switch between Active and Inactive without deleting the replacement. Perfect for testing and seasonal changes.
    225429
    226430= What if I have multiple replacements that affect each other? =
    227431
    228 Use the **Priority** field to control the order. Lower numbers (e.g., 1, 5) apply before higher numbers (e.g., 10, 20).
     432Use 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.
    229433
    230434= Is this compatible with page builders? =
    231435
    232 Yes! Easy Text Replace works with Elementor, Beaver Builder, Divi, and other page builders for text generated by WordPress.
     436Yes! 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.
    233437
    234438= Can I replace text in custom post types? =
    235439
    236 Yes, as long as the text is generated through WordPress's translation system.
     440Yes, 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
     444Yes! 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
     448Yes! 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
     452Yes, 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
     4561. Make sure the replacement is set to **Active**
     4572. Clear all caches (plugin + site cache)
     4583. Log out and view your site in an incognito browser window
     4594. Search for the source text on the page - it should be replaced
     4605. Check browser inspector to verify the text in the HTML source
    237461
    238462== Screenshots ==
    239463
    240 1. All Text Replacements - Manage all your text replacements in one place with search, sort, and bulk actions
    241 2. Add New Replacement - Simple form to create new text replacements with all options
    242 3. Text Domain Tooltip - How to find and use text domains to target specific plugins or themes
    243 4. Import/Export - Backup and transfer your replacement configurations between sites
     4641. Text replacement dashboard - Find and replace strings with search, sorting, and bulk operations for WordPress sites
     4652. Add new text replacement - Replace WooCommerce buttons, form labels, and theme text without coding
     4663. Text domain filtering - Target specific plugins like WooCommerce or Contact Form 7 for precise string replacement
     4674. Import/Export replacements - Transfer find and replace configurations between WordPress sites with JSON backup
    244468
    245469== Changelog ==
     470= 1.0.3 - 2025-12-30 =
     471* Update: Compatibility
    246472
    247473= 1.0.2 - 2025-12-16 =
    248474* Updated: Tested up to WordPress 6.9
    249 * Improved: Removed replacement limit - now supports unlimited replacements
     475* Improved: Removed replacement limit - now supports unlimited text replacements
    250476* 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
    252480
    253481= 1.0.1 - 2025-11-15 =
    254482* 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
    256485
    257486= 1.0.0 - 2025-10-25 =
    258487* Initial release
    259488* String replacement functionality with text domain filtering
    260 * Priority ordering system for multiple replacements
     489* Priority ordering system for multiple text replacements
    261490* Case-sensitive and case-insensitive matching
    262491* Enable/disable toggle for individual replacements
    263 * Bulk operations (enable, disable, delete)
     492* Bulk operations (enable, disable, delete multiple replacements)
    264493* Import/export functionality with JSON format
    265494* Performance optimization with intelligent caching
    266495* WordPress coding standards compliance
    267496* Security hardening with nonce verification and capability checks
     497* Integration with WordPress gettext system for reliable text replacement
    268498
    269499== Upgrade Notice ==
     500= 1.0.3 =
     501Update compatibility with the WordPress version.
    270502
    271503= 1.0.2 =
    272 Unlimited replacements now supported! Updated for WordPress 6.9 with improved performance and one-click cache clearing.
     504Unlimited text replacements now supported! Updated for WordPress 6.9 with improved performance and one-click cache clearing.
    273505
    274506= 1.0.1 =
    275 Minor bug fixes and security improvements.
     507Minor bug fixes and security improvements for text replacement operations.
    276508
    277509= 1.0.0 =
    278 Initial release of Easy Text Replace. Install to start customizing text on your WordPress site without editing code.
     510Initial release of Text Replace. Install to start finding and replacing text on your WordPress site without editing code.
    279511
    280512== Privacy Policy ==
    281513
    282 Easy Text Replace does not collect, store, or transmit any personal data. All replacement configurations are stored locally in your WordPress database.
     514Text Replace does not collect, store, or transmit any personal data. All replacement configurations are stored locally in your WordPress database.
    283515
    284516== Credits ==
     
    293525== Translations ==
    294526
    295 Easy Text Replace is translation-ready and includes:
     527Text Replace is translation-ready and includes:
    296528English (default)
    297529
    298 Want to translate Easy Text Replace into your language? Visit [WordPress Translate](https://translate.wordpress.org/projects/wp-plugins/easy-text-replace/).
     530Want 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  
    22    'root' => array(
    33        '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',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    2121        ),
    2222        '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',
    2626            'type' => 'wordpress-plugin',
    2727            'install_path' => __DIR__ . '/../../',
  • easy-text-replace/trunk/easy-text-replace.php

    r3420701 r3429459  
    44 * Plugin URI: https://wordpress.org/plugins/easy-text-replace/
    55 * 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.2
     6 * Version: 1.0.3
    77 * Author: SH Sajal Chowdhury
    88 * 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 ===
    22Contributors: shsajalchowdhury
    3 Tags: change, string, customize text, change text, translation
     3Tags: text-replace, find-and-replace, string-replacement, woocommerce, gettext
    44Requires at least: 5.8
    55Tested up to: 6.9
    66Requires PHP: 7.4
    7 Stable tag: 1.0.2
     7Stable tag: 1.0.3
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    1010
    11 Customize WooCommerce, forms & WordPress text instantly. Replace strings without coding. Update-safe, cached, SEO-friendly text replacement.
     11Find and replace any WordPress text without coding. Change WooCommerce buttons, form labels, and theme text. Update-safe and cached.
    1212
    1313== Description ==
    1414
    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 WordPress labels, or personalizing any text across your site.
    16 
    17 = Why Choose Easy Text Replace? =
    18 
    19 * **No Code Editing Required** - Change text without touching theme or plugin files
    20 * **Update-Safe** - Your customizations survive theme and plugin updates
     15**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
    2121* **Performance Optimized** - Single database query per page load with intelligent caching
    2222* **Text Domain Filtering** - Target specific plugins, themes, or apply changes globally
    23 * **Priority Control** - Manage the order of multiple replacements
     23* **Priority Control** - Manage the order of multiple text replacements
    2424* **Bulk Operations** - Enable, disable, or delete multiple replacements at once
    2525* **Import/Export** - Transfer configurations between sites easily
     
    3939
    4040**Simple String Replacement**
    41 Replace any text from themes, plugins, or WordPress core with just a few clicks. No coding knowledge required.
     41Find and replace any text from themes, plugins, or WordPress core with just a few clicks. No coding knowledge required.
    4242
    4343**Text Domain Filtering**
     
    7171
    7272== Search & Sort ==
    73 Easily find and organize your replacements with built-in search and sorting capabilities.
     73Easily find and organize your text replacements with built-in search and sorting capabilities.
    7474
    7575= Use Cases =
    7676
    77 == E-Commerce Customization ==
     77== WooCommerce Text Customization ==
    7878* Change "Add to Cart" to "Add to Bag" or "Buy Now"
    7979* Modify "Proceed to Checkout" to "Complete Purchase"
    8080* Customize product page labels
    8181* 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
    8587* Modify form field labels
    8688* Customize validation messages
    8789* Personalize success messages
    88 
    89 == WordPress Core Customization ==
     90* Replace error message text
     91
     92== WordPress Core Text Replacement ==
    9093* Replace "Howdy" in admin bar
    9194* Change "Dashboard" to "Control Panel"
    9295* Modify menu labels
    9396* Customize admin notices
    94 
    95 == Theme Customization ==
     97* Replace login page text
     98
     99== Theme Text Customization ==
    96100* Change "Read More" links
    97101* Modify navigation labels
    98102* Customize footer text
    99103* Personalize call-to-action buttons
     104* Replace copyright text
    100105
    101106= How It Works =
    102107
    103 Easy Text Replace hooks into WordPress's translation system (gettext) to intercept and replace text strings before they're displayed. This means:
     108Text Replace hooks into WordPress's translation system (gettext) to intercept and replace text strings before they're displayed. This means:
    104109
    1051101. **No file modifications** - Your theme and plugin files remain untouched
    106 2. **Update-safe** - Replacements persist through updates
     1112. **Update-safe** - String replacements persist through updates
    1071123. **Reversible** - Simply disable or delete replacements to restore original text
    1081134. **Efficient** - Replacements are cached for optimal performance
     114
     115== How to Change WooCommerce "Add to Cart" Text ==
     116
     117One of the most common uses for Text Replace is customizing WooCommerce button text. Here's how:
     118
     1191. Navigate to **Text Replace > Add New** in your WordPress admin
     1202. In the **Source String** field, enter: `Add to cart`
     1213. In the **Replacement String** field, enter your desired text (e.g., `Buy Now`)
     1224. In the **Text Domain** field, enter: `woocommerce`
     1235. Leave **Case Sensitive** unchecked (default)
     1246. Set **Priority** to 10 (default)
     1257. Make sure status is set to **Active**
     1268. Click **Save Replacement**
     1279. Clear your site cache if using a caching plugin
     12810. 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
     134Customize Contact Form 7 submit buttons without editing form code:
     135
     1361. Go to **Text Replace > Add New**
     1372. **Source String**: `Send` (or your current button text)
     1383. **Replacement String**: Your desired button text (e.g., `Submit Message`)
     1394. **Text Domain**: `contact-form-7`
     1405. Status: **Active**
     1416. Click **Save Replacement**
     1427. 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
     148Replace any theme text without touching template files:
     149
     1501. First, identify the exact text you want to replace (copy it exactly as it appears)
     1512. Navigate to **Text Replace > Add New**
     1523. **Source String**: The exact theme text (e.g., `Read More`)
     1534. **Replacement String**: Your new text (e.g., `Continue Reading`)
     1545. **Text Domain**: Leave empty for global replacement, or enter your theme's text domain
     1556. Enable **Case Sensitive** if exact capitalization matters
     1567. Status: **Active**
     1578. 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
     163To target a specific plugin with text replacement, you need its text domain:
     164
     165**Method 1: Check Plugin Main File**
     1661. Go to Plugins > Plugin File Editor
     1672. Select the plugin from dropdown
     1683. Look for `Text Domain:` in the file header at the top
     1694. Copy the text domain value
     170
     171**Method 2: Check Translation Files**
     1721. Navigate to `/wp-content/plugins/[plugin-name]/languages/`
     1732. Look for .po or .pot files
     1743. 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
     188When you need to replace several strings, use priority to control the order:
     189
     1901. **Plan your replacements** - List all the text you want to change
     1912. **Create each replacement** - Go to Text Replace > Add New for each one
     1923. **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
     1964. **Use Text Domain filtering** - Specify text domain to avoid conflicts
     1975. **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
     206Control where your text replacements apply:
     207
     208**Site-Wide Replacement (Global):**
     2091. Create your replacement as normal
     2102. **Leave Text Domain field EMPTY**
     2113. This will replace the text everywhere it appears on your site
     212
     213**Plugin-Specific Replacement:**
     2141. Create your replacement
     2152. **Enter the plugin's text domain** (e.g., `woocommerce`)
     2163. Text will ONLY be replaced when generated by that specific plugin
     217
     218**Theme-Specific Replacement:**
     2191. Find your theme's text domain (check style.css)
     2202. Enter the theme text domain in the Text Domain field
     2213. 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
     230Test your replacements safely before going live:
     231
     232**Method 1: Use Enable/Disable Toggle**
     2331. Create your replacement with status **Inactive**
     2342. Save the replacement
     2353. Log out and view your site in an incognito window
     2364. Log back in and toggle to **Active** when ready
     237
     238**Method 2: Test on Staging Site**
     2391. Create replacements on your staging site
     2402. Test thoroughly
     2413. Export via **Text Replace > Import/Export**
     2424. Import the JSON file on your live site
     243
     244**Method 3: Use Priority to Test Incrementally**
     2451. Set test replacements to high priority (90-99)
     2462. This makes them easy to identify and remove
     2473. 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
     253Transfer your text replacements between sites easily:
     254
     255**To Export:**
     2561. Go to **Text Replace > Import/Export**
     2572. Click **Export All Replacements**
     2583. A JSON file will download to your computer
     2594. This file contains all your active and inactive replacements
     260
     261**To Import:**
     2621. Go to **Text Replace > Import/Export** on the destination site
     2632. Click **Choose File** and select your exported JSON file
     2643. Click **Import**
     2654. The plugin will automatically detect and skip duplicates
     2665. 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
     278Customize WooCommerce email text without editing templates:
     279
     2801. Identify the exact text in the email you want to change
     2812. Go to **Text Replace > Add New**
     2823. **Source String**: The email text (e.g., `Thank you for your order`)
     2834. **Replacement String**: Your custom text (e.g., `Thanks for shopping with us!`)
     2845. **Text Domain**: `woocommerce`
     2856. Status: **Active**
     2867. 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.
    109295
    110296= Developer Friendly =
     
    119305* `etrp_after_replacement_apply` - Action after replacement
    120306
     307**Example: Programmatically Add Replacement**
     308
     309```php
     310add_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
    121322= Support =
    122323
     
    1293301. Log in to your WordPress admin panel
    1303312. Navigate to **Plugins > Add New**
    131 3. Search for "Easy Text Replace"
     3323. Search for "Text Replace"
    1323334. Click **Install Now** and then **Activate**
    1333345. Go to **Text Replace** in your admin menu to start adding replacements
     
    159360= Will this work with my theme? =
    160361
    161 Yes! Easy Text Replace works with any WordPress theme by hooking into WordPress's translation system.
     362Yes! Text Replace works with any WordPress theme by hooking into WordPress's translation system (gettext filter).
    162363
    163364= Will this work with WooCommerce? =
    164365
    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.
     366Absolutely! 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.
    166367
    167368= Does this affect site performance? =
    168369
    169 Minimal impact. The plugin uses intelligent caching and executes only one database query per page load. Active replacements are cached for 24 hours.
     370Minimal 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.
    170371
    171372= What happens when I update my theme or plugins? =
    172373
    173 Your replacements remain intact! Since you're not modifying source files, updates won't affect your customizations.
     374Your 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.
    174375
    175376= Can I replace HTML? =
    176377
    177 The plugin is designed for text replacement. While it can replace simple HTML, it's recommended to use it for plain text strings.
     378The 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.
    178379
    179380= How do I find a plugin's text domain? =
     
    185386* Elementor: `elementor`
    186387
     388See the "How to Find Text Domain for Any Plugin" section above for detailed instructions.
     389
    187390= What's the maximum number of replacements? =
    188391
     
    191394= Can I use regular expressions? =
    192395
    193 Not in the current version. The plugin uses simple string matching for reliability and performance.
     396Not in the current version. The plugin uses simple string matching for reliability and performance. Regular expressions may be added in a future version.
    194397
    195398= Why aren't my replacements appearing? =
     
    2014044. Verify the source string matches exactly (check case sensitivity setting)
    2024055. Make sure the text you're trying to replace is actually generated by WordPress, not hardcoded in templates
     4066. Check if another plugin or code is overriding the text after your replacement
    203407
    204408= How do I clear the cache? =
     
    210414= Can I export and import replacements? =
    211415
    212 Yes! Go to **Text Replace > Import/Export** to export all replacements to a JSON file or import from a previously exported file.
     416Yes! 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.
    213417
    214418= Does this work with multilingual plugins? =
    215419
    216 Yes, Easy Text Replace works alongside multilingual plugins like WPML and Polylang. The replacements are applied after translation.
     420Yes, 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.
    217421
    218422= How do I prevent replacing text in other plugins? =
    219423
    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.
     424Use 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.
    221425
    222426= Can I temporarily disable a replacement? =
    223427
    224 Yes! Click the status toggle in the replacements list to switch between Active and Inactive without deleting the replacement.
     428Yes! Click the status toggle in the replacements list to switch between Active and Inactive without deleting the replacement. Perfect for testing and seasonal changes.
    225429
    226430= What if I have multiple replacements that affect each other? =
    227431
    228 Use the **Priority** field to control the order. Lower numbers (e.g., 1, 5) apply before higher numbers (e.g., 10, 20).
     432Use 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.
    229433
    230434= Is this compatible with page builders? =
    231435
    232 Yes! Easy Text Replace works with Elementor, Beaver Builder, Divi, and other page builders for text generated by WordPress.
     436Yes! 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.
    233437
    234438= Can I replace text in custom post types? =
    235439
    236 Yes, as long as the text is generated through WordPress's translation system.
     440Yes, 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
     444Yes! 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
     448Yes! 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
     452Yes, 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
     4561. Make sure the replacement is set to **Active**
     4572. Clear all caches (plugin + site cache)
     4583. Log out and view your site in an incognito browser window
     4594. Search for the source text on the page - it should be replaced
     4605. Check browser inspector to verify the text in the HTML source
    237461
    238462== Screenshots ==
    239463
    240 1. All Text Replacements - Manage all your text replacements in one place with search, sort, and bulk actions
    241 2. Add New Replacement - Simple form to create new text replacements with all options
    242 3. Text Domain Tooltip - How to find and use text domains to target specific plugins or themes
    243 4. Import/Export - Backup and transfer your replacement configurations between sites
     4641. Text replacement dashboard - Find and replace strings with search, sorting, and bulk operations for WordPress sites
     4652. Add new text replacement - Replace WooCommerce buttons, form labels, and theme text without coding
     4663. Text domain filtering - Target specific plugins like WooCommerce or Contact Form 7 for precise string replacement
     4674. Import/Export replacements - Transfer find and replace configurations between WordPress sites with JSON backup
    244468
    245469== Changelog ==
     470= 1.0.3 - 2025-12-30 =
     471* Update: Compatibility
    246472
    247473= 1.0.2 - 2025-12-16 =
    248474* Updated: Tested up to WordPress 6.9
    249 * Improved: Removed replacement limit - now supports unlimited replacements
     475* Improved: Removed replacement limit - now supports unlimited text replacements
    250476* 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
    252480
    253481= 1.0.1 - 2025-11-15 =
    254482* 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
    256485
    257486= 1.0.0 - 2025-10-25 =
    258487* Initial release
    259488* String replacement functionality with text domain filtering
    260 * Priority ordering system for multiple replacements
     489* Priority ordering system for multiple text replacements
    261490* Case-sensitive and case-insensitive matching
    262491* Enable/disable toggle for individual replacements
    263 * Bulk operations (enable, disable, delete)
     492* Bulk operations (enable, disable, delete multiple replacements)
    264493* Import/export functionality with JSON format
    265494* Performance optimization with intelligent caching
    266495* WordPress coding standards compliance
    267496* Security hardening with nonce verification and capability checks
     497* Integration with WordPress gettext system for reliable text replacement
    268498
    269499== Upgrade Notice ==
     500= 1.0.3 =
     501Update compatibility with the WordPress version.
    270502
    271503= 1.0.2 =
    272 Unlimited replacements now supported! Updated for WordPress 6.9 with improved performance and one-click cache clearing.
     504Unlimited text replacements now supported! Updated for WordPress 6.9 with improved performance and one-click cache clearing.
    273505
    274506= 1.0.1 =
    275 Minor bug fixes and security improvements.
     507Minor bug fixes and security improvements for text replacement operations.
    276508
    277509= 1.0.0 =
    278 Initial release of Easy Text Replace. Install to start customizing text on your WordPress site without editing code.
     510Initial release of Text Replace. Install to start finding and replacing text on your WordPress site without editing code.
    279511
    280512== Privacy Policy ==
    281513
    282 Easy Text Replace does not collect, store, or transmit any personal data. All replacement configurations are stored locally in your WordPress database.
     514Text Replace does not collect, store, or transmit any personal data. All replacement configurations are stored locally in your WordPress database.
    283515
    284516== Credits ==
     
    293525== Translations ==
    294526
    295 Easy Text Replace is translation-ready and includes:
     527Text Replace is translation-ready and includes:
    296528English (default)
    297529
    298 Want to translate Easy Text Replace into your language? Visit [WordPress Translate](https://translate.wordpress.org/projects/wp-plugins/easy-text-replace/).
     530Want 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  
    22    'root' => array(
    33        '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',
    77        'type' => 'wordpress-plugin',
    88        'install_path' => __DIR__ . '/../../',
     
    2121        ),
    2222        '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',
    2626            'type' => 'wordpress-plugin',
    2727            'install_path' => __DIR__ . '/../../',
Note: See TracChangeset for help on using the changeset viewer.