[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fr25w2_Tn51TezNo6DGzjMbWUZRNC7h8rLJfJwYiFdto":3,"$fYgjx8OOy8D261xBjQLBQEp9svtg-FGrCZlCb7vnAFKc":290,"$f_YMkfBOM6hHLlftZOtdg5NjNS3Ik4zmSooHsqY_-CPE":295},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"discovery_status":31,"vulnerabilities":32,"developer":33,"crawl_stats":29,"alternatives":39,"analysis":139,"fingerprints":260},"text-replace","Text Replace","4.0","Scott Reilly","https:\u002F\u002Fprofiles.wordpress.org\u002Fcoffee2code\u002F","\u003Cp>This plugin allows you to easily define text or HTML that should be used in your posts in place of words or phrases that are actually present in the posts. This is a handy technique for creating shortcuts to common, lengthy, or frequently changing text\u002FHTML, or for smilies.\u003C\u002Fp>\n\u003Cp>Additional features of the plugin controlled both via settings and filters:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Text replacement can be enabled for comments (it isn’t by default)\u003C\u002Fli>\n\u003Cli>Text replacement can be made case insensitive (it is case sensitive by default)\u003C\u002Fli>\n\u003Cli>Text replacement can be limited to doing only one replacement per term, per post (by default, all occurrences of a term are replaced)\u003C\u002Fli>\n\u003Cli>Text replacement can be handled early or late in WordPress’s text filtering process (it’s early by default)\u003C\u002Fli>\n\u003Cli>Text replacement can be expanded to affect other filters\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>A few things to keep these things in mind:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>Your best bet with defining shortcuts is to define something that would never otherwise appear in your text. For instance, bookend the shortcut with colons:\u003C\u002Fp>\n\u003Cp>:wp: => \u003Ca href='https:\u002F\u002Fwordpress.org' rel=\"ugc\">WordPress\u003C\u002Fa>\u003Cbr \u002F>\n:aol: => \u003Ca href='http:\u002F\u002Fwww.aol.com' rel=\"nofollow ugc\">America Online, Inc.\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Otherwise, you risk proper but undesired replacements:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>Hi => Hello\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Would have the effect of changing “His majesty” to “Hellos majesty”.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>If you intend to use this plugin to handle smilies, you should probably disable WordPress’s default smilie handler on the Writing Settings admin page.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>This plugin is set to filter ‘the_content’, ‘the_excerpt’, ‘widget_text’, and optionally, ‘get_comment_text’ and ‘get_comment_excerpt’. Filters from popular plugins such as Advanced Custom Fields (ACF) and Elementor are also handled by default (see FAQ for specifics). The “More filters” setting can be used to specify additional filters that should be handled by the plugin. The filter ‘c2c_text_replace_filters’ can also be used to add or modify the list of filters affected.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Text inside of HTML tags (such as tag names and attributes) will not be matched. So, for example, you can’t expect the :mycss: shortcut to work in \u003Ccode>\u003Ca href=\"\" style=\":mycss:\">text\u003C\u002Fa>\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>SPECIAL CONSIDERATION:\u003C\u002Fstrong> Be aware that the shortcut text that you use in your posts will be stored that way in the database. While calls to display the posts will see the filtered, text-replaced version, anything that operates directly on the database will not see the expanded replacement text. So if you only ever referred to “America Online” as “:aol:” (where \u003Ccode>:aol: => \u003Ca href='http:\u002F\u002Fwww.aol.com'>America Online\u003C\u002Fa>\u003C\u002Fcode>), visitors to your site will see the linked, expanded text due to the text replace, but a database search would never turn up a match for “America Online”.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>However, a benefit of the replacement text not being saved to the database and instead evaluated when the data is being loaded into a web page is that if the replacement text is modified, all pages making use of the shortcut will henceforth use the updated replacement text.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Links: \u003Ca href=\"https:\u002F\u002Fcoffee2code.com\u002Fwp-plugins\u002Ftext-replace\u002F\" rel=\"nofollow ugc\">Plugin Homepage\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ftext-replace\u002F\" rel=\"ugc\">Plugin Directory Page\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcoffee2code\u002Ftext-replace\u002F\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fcoffee2code.com\" rel=\"nofollow ugc\">Author Homepage\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Developer Documentation\u003C\u002Fh3>\n\u003Cp>Developer documentation can be found in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcoffee2code\u002Ftext-replace\u002Fblob\u002Fmaster\u002FDEVELOPER-DOCS.md\" rel=\"nofollow ugc\">DEVELOPER-DOCS.md\u003C\u002Fa>. That documentation covers the numerous hooks provided by the plugin. Those hooks are listed below to provide an overview of what’s available.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>c2c_text_replace_filters\u003C\u002Fcode> : Customize what hooks get text replacement applied to them.\u003C\u002Fli>\n\u003Cli>\u003Ccode>c2c_text_replace_third_party_filters\u003C\u002Fcode> : Customize what third-party hooks get text replacement applied to them.\u003C\u002Fli>\n\u003Cli>\u003Ccode>c2c_text_replace_filter_priority\u003C\u002Fcode> : Override the default priority for the ‘c2c_text_replace’ filter.\u003C\u002Fli>\n\u003Cli>\u003Ccode>c2c_text_replace\u003C\u002Fcode> Customize or override the setting defining all of the text replacement shortcuts and their replacements.\u003C\u002Fli>\n\u003Cli>\u003Ccode>c2c_text_replace_comments\u003C\u002Fcode> : Customize or override the setting indicating if text replacement should be enabled in comments.\u003C\u002Fli>\n\u003Cli>\u003Ccode>c2c_text_replace_case_sensitive\u003C\u002Fcode> : Customize or override the setting indicating if text replacement should be case sensitive.\u003C\u002Fli>\n\u003Cli>\u003Ccode>c2c_text_replace_once\u003C\u002Fcode> : Customize or override the setting indicating if text replacement should be limited to once per term per piece of text being processed regardless of how many times the term appears.\u003C\u002Fli>\n\u003C\u002Ful>\n","Replace text with other text. Handy for creating shortcuts to common, lengthy, or frequently changing text\u002FHTML, or for smilies.",3000,80366,88,18,"2021-07-12T05:51:00.000Z","5.7.15","4.9","",[20,21,22,23,24],"coffee2code","replace","shortcut","substitution","text","https:\u002F\u002Fcoffee2code.com\u002Fwp-plugins\u002Ftext-replace\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.4.0.zip",85,0,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":20,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":35,"avg_security_score":13,"avg_patch_time_days":36,"trust_score":37,"computed_at":38},63,91830,374,71,"2026-05-19T21:06:57.270Z",[40,62,82,101,121],{"slug":41,"name":42,"version":43,"author":44,"author_profile":45,"description":46,"short_description":47,"active_installs":48,"downloaded":49,"rating":50,"num_ratings":51,"last_updated":52,"tested_up_to":53,"requires_at_least":54,"requires_php":55,"tags":56,"homepage":60,"download_link":61,"security_score":50,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"search-replace-for-block-editor","Search and Replace for Block Editor","1.10.0","badasswp","https:\u002F\u002Fprofiles.wordpress.org\u002Fbadasswp\u002F","\u003Cp>This plugin brings the familiar Search and Replace functionality that PC users have grown accustomed to in \u003Cstrong>Microsoft Word\u003C\u002Fstrong> and \u003Cstrong>Google Docs\u003C\u002Fstrong> to the Block Editor.\u003C\u002Fp>\n\u003Cp>Now you can easily search and replace text right in the Block Editor. Its easy and does exactly what it says. You can also match the text case using the ‘Match Case | Expression’ toggle.\u003C\u002Fp>\n\u003Ch4>✔️ Features\u003C\u002Fh4>\n\u003Cp>Our plugin comes with everything you need to find and replace text quicker and more efficiently.\u003C\u002Fp>\n\u003Cp>✔️ \u003Cstrong>Search & Replace\u003C\u002Fstrong> text, typos, keywords faster.\u003Cbr \u002F>\n✔️ \u003Cstrong>Shortcut Keys\u003C\u002Fstrong> – CMD + SHIFT + F.\u003Cbr \u002F>\n✔️ \u003Cstrong>Match Case\u003C\u002Fstrong> Sensitivity.\u003Cbr \u002F>\n✔️ \u003Cstrong>Custom Hooks\u003C\u002Fstrong> to help you customize plugin behaviour.\u003Cbr \u002F>\n✔️ Available in \u003Cstrong>mutiple langauges\u003C\u002Fstrong> such as Arabic, Chinese, Hebrew, Hindi, Russian, German, Italian, Croatian, Spanish & French languages.\u003Cbr \u002F>\n✔️ \u003Cstrong>Backward compatible\u003C\u002Fstrong>, works with most WP versions.\u003C\u002Fp>\n\u003Ch4>✨ Getting Started\u003C\u002Fh4>\n\u003Cp>Create a new Post or open an existing Post. Locate the ‘Search and Replace’ icon at the \u003Cstrong>top left\u003C\u002Fstrong> corner of the Block Editor and click on it. Proceed to type in the text you wish to replace and click on ‘Replace’.\u003C\u002Fp>\n\u003Cp>You can get a taste of how this works, by using the \u003Ca href=\"https:\u002F\u002Ftastewp.com\u002Fcreate\u002FNMS\u002F8.0\u002F6.7.0\u002Fsearch-replace-for-block-editor\u002Ftwentytwentythree?ni=true&origin=wp\" rel=\"nofollow ugc\">demo\u003C\u002Fa> link.\u003C\u002Fp>\n\u003Ch4>⚡ Shortcut Keys & Text Selection\u003C\u002Fh4>\n\u003Cp>To quickly access the Search and Replace modal, press \u003Cstrong>CTRL + SHIFT + F\u003C\u002Fstrong>. This will fire up the dialog box where you can quickly change things.\u003C\u002Fp>\n\u003Cp>You can also \u003Cstrong>select text\u003C\u002Fstrong> on your Block Editor and \u003Cstrong>use the Shortcut\u003C\u002Fstrong>. This will grab the text you have selected and fire up your dialog box with the text already typed into it. This makes working with the Search and Replace tool faster.\u003C\u002Fp>\n\u003Ch4>🔌🎨 Plug and Play or Customize\u003C\u002Fh4>\n\u003Cp>The Search & Replace for Block Editor plugin is built to work right out of the box. Simply install, activate and start using.\u003C\u002Fp>\n\u003Cp>Want to add your personal touch? All of our documentation can be found \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbadasswp\u002Fsearch-replace-for-block-editor\" rel=\"nofollow ugc\">here\u003C\u002Fa>. You can override the plugin’s behaviour with custom logic of your own using \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbadasswp\u002Fsearch-replace-for-block-editor?tab=readme-ov-file#hooks\" rel=\"nofollow ugc\">hooks\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Contribute\u003C\u002Fh3>\n\u003Cp>If you’d like to contribute to the development of this plugin, you can find it on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbadasswp\u002Fsearch-replace-for-block-editor\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>To build, clone repo and run \u003Ccode>npm install && npm run build\u003C\u002Fcode>\u003C\u002Fp>\n","Search and Replace text within the WordPress Block Editor just like Microsoft Word or Google Docs. It's super fast, easy & just works!",1000,15552,100,3,"2026-03-23T07:07:00.000Z","6.9.4","6.0","7.4",[57,58,21,59,24],"block","editor","search","https:\u002F\u002Fgithub.com\u002Fbadasswp\u002Fsearch-and-replace","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsearch-replace-for-block-editor.1.10.0.zip",{"slug":63,"name":63,"version":64,"author":7,"author_profile":8,"description":65,"short_description":66,"active_installs":67,"downloaded":68,"rating":69,"num_ratings":70,"last_updated":71,"tested_up_to":72,"requires_at_least":73,"requires_php":18,"tags":74,"homepage":80,"download_link":81,"security_score":69,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"wpuntexturize","2.3","\u003Cp>By default, WordPress converts single and double quotation marks into their curly alternatives. This plugin prevents that from happening, so you can enjoy your quotation marks in their non-curly glory. If your content happens to already have curly quotation marks in it, then this plugin can optionally also convert them to their non-curly alternatives.\u003C\u002Fp>\n\u003Cp>\u003Cem>Note:\u003C\u002Fem> Despite the unfortunately misleading name, this plugin is NOT the antithesis of WordPress’s \u003Ccode>wptexturize()\u003C\u002Fcode> function. This ONLY prevents WordPress from making HTML entity code substitutions of single and double quotation marks with their curly alternatives and does NOT prevent \u003Ccode>wptexturize()\u003C\u002Fcode> from making any other character and string substitutions. See the FAQ for details on the filters processed by the plugin.\u003C\u002Fp>\n\u003Cp>Links: \u003Ca href=\"https:\u002F\u002Fcoffee2code.com\u002Fwp-plugins\u002Fwpuntexturize\u002F\" rel=\"nofollow ugc\">Plugin Homepage\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwpuntexturize\u002F\" rel=\"ugc\">Plugin Directory Page\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcoffee2code\u002Fwpuntexturize\u002F\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fcoffee2code.com\" rel=\"nofollow ugc\">Author Homepage\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Developer Documentation\u003C\u002Fh3>\n\u003Cp>Developer documentation can be found in \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcoffee2code\u002Fwpuntexturize\u002Fblob\u002Fmaster\u002FDEVELOPER-DOCS.md\" rel=\"nofollow ugc\">DEVELOPER-DOCS.md\u003C\u002Fa>. That documentation covers the numerous hooks provided by the plugin. Those hooks are listed below to provide an overview of what’s available.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>c2c_wpuntexturize\u003C\u002Fcode> : An alternative approach to safely invoke \u003Ccode>c2c_wpuntexturize()\u003C\u002Fcode> in such a way that if the plugin were deactivated or deleted, then your calls to the function won’t cause errors in your site. This only applies if you use the function directly, which is not typical usage for most users.\u003C\u002Fli>\n\u003Cli>\u003Ccode>wpuntexturize_filters\u003C\u002Fcode> : customize what filters to hook to be filtered with wpuntexturize. See the Description section for a complete list of all filters that are filtered by default.\u003C\u002Fli>\n\u003Cli>\u003Ccode>c2c_wpuntexturize_replacements\u003C\u002Fcode> : Customize the character replacements handled by the plugin.\u003C\u002Fli>\n\u003Cli>\u003Ccode>c2c_wpuntexturize_convert_curly_quotes\u003C\u002Fcode> : Enable conversion of preexisting curly quotes into their non-curly alternatives.\u003C\u002Fli>\n\u003C\u002Ful>\n","Prevent WordPress from converting single and double quotation marks into their curly alternatives.",900,25686,92,12,"2025-04-08T22:17:00.000Z","6.8.5","5.5",[75,76,77,78,79],"formatting","post","quotes","substitutions","wptexturize","https:\u002F\u002Fcoffee2code.com\u002Fwp-plugins\u002Fwpuntexturize\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwpuntexturize.2.3.zip",{"slug":83,"name":84,"version":85,"author":86,"author_profile":87,"description":88,"short_description":89,"active_installs":90,"downloaded":91,"rating":92,"num_ratings":51,"last_updated":93,"tested_up_to":94,"requires_at_least":95,"requires_php":96,"tags":97,"homepage":18,"download_link":100,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"replace-text","Replace Text","1.0","Yarddiant","https:\u002F\u002Fprofiles.wordpress.org\u002Fyarddiant\u002F","\u003Cp>This plugin will help you to replace a text in whole WordPress website with the required one. You can simply install the plugin\u003Cbr \u002F>\nand you can see two fields. You can replace complete texts contains in whole wordpress website.\u003C\u002Fp>\n\u003Ch3>Developers\u003C\u002Fh3>\n\u003Cp>This simple plugin is developed by talented wordpress developers which will be updated in wide.\u003Cbr \u002F>\nOut of top \u003Ca href=\"https:\u002F\u002Fwww.yarddiant.com\u002Fwordpress-development.html\" rel=\"nofollow ugc\">wordpress development company\u003C\u002Fa> this team give a lot of wordpress plugin development support.\u003C\u002Fp>\n\u003Cp>This \u003Ca href=\"https:\u002F\u002Fwww.yarddiant.com\" rel=\"dofollow nofollow ugc\">web development company\u003C\u002Fa> mainly works on free plugin.\u003Cbr \u002F>\nThe plugin development team of this company is developed from a group of\u003C\u002Fp>\n","This plugin will help you to replace a text in whole Wordpress website with the required one. You can simply install the plugin",300,27344,74,"2023-06-21T09:49:00.000Z","5.2.24","4.5","5.4",[83,98,99],"search-replace","text-replacer","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Freplace-text.zip",{"slug":102,"name":103,"version":104,"author":105,"author_profile":106,"description":107,"short_description":108,"active_installs":109,"downloaded":110,"rating":50,"num_ratings":111,"last_updated":112,"tested_up_to":113,"requires_at_least":114,"requires_php":115,"tags":116,"homepage":18,"download_link":120,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"kalamatino","Kalamatino","1.0.1","Shokrino Team","https:\u002F\u002Fprofiles.wordpress.org\u002Fshokrino\u002F","\u003Cp>after activating the plugin you can go to kalamatino words list and add your custom text for replacement.\u003C\u002Fp>\n\u003Cp>kalamatino name made from “kalamat” word that means “words” in persian.\u003C\u002Fp>\n\u003Cp>you can add words to the plugin’s list to start replace texts\u003Cbr \u002F>\n1. words list on kalamatino\u003C\u002Fp>\n","You can easily replace a letter or every text with your custom text with kalamatino.",200,4146,2,"2022-10-05T09:08:00.000Z","6.0.11","4.7","7.2",[83,117,118,24,119],"replace-words","string","words","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fkalamatino.1.0.1.zip",{"slug":122,"name":123,"version":124,"author":125,"author_profile":126,"description":127,"short_description":128,"active_installs":50,"downloaded":129,"rating":50,"num_ratings":51,"last_updated":130,"tested_up_to":53,"requires_at_least":131,"requires_php":55,"tags":132,"homepage":137,"download_link":138,"security_score":50,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"easy-text-replace","Text Replace – Find and Replace WordPress Strings","1.0.5","SH Sajal Chowdhury","https:\u002F\u002Fprofiles.wordpress.org\u002Fshsajalchowdhury\u002F","\u003Cp>\u003Cstrong>Text Replace\u003C\u002Fstrong> 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.\u003C\u002Fp>\n\u003Ch4>Why Choose Text Replace?\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>No Code Editing Required\u003C\u002Fstrong> – Find and replace text without touching theme or plugin files\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Update-Safe\u003C\u002Fstrong> – Your string replacements survive theme and plugin updates\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Performance Optimized\u003C\u002Fstrong> – Single database query per page load with intelligent caching\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Text Domain Filtering\u003C\u002Fstrong> – Target specific plugins, themes, or apply changes globally\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Priority Control\u003C\u002Fstrong> – Manage the order of multiple text replacements\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bulk Operations\u003C\u002Fstrong> – Enable, disable, or delete multiple replacements at once\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Import\u002FExport\u003C\u002Fstrong> – Transfer configurations between sites easily\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Cache Compatible\u003C\u002Fstrong> – Works with WP Rocket, W3 Total Cache, WP Super Cache, and more\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Perfect For\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Changing WooCommerce “Add to Cart” to “Buy Now”\u003C\u002Fli>\n\u003Cli>Customizing Contact Form 7 button labels\u003C\u002Fli>\n\u003Cli>Replacing WordPress admin bar text\u003C\u002Fli>\n\u003Cli>Modifying theme-specific strings\u003C\u002Fli>\n\u003Cli>Personalizing plugin messages\u003C\u002Fli>\n\u003Cli>Translating or localizing specific phrases\u003C\u002Fli>\n\u003Cli>A\u002FB testing different button labels\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Simple String Replacement\u003C\u002Fstrong>\u003Cbr \u002F>\nFind and replace any text from themes, plugins, or WordPress core with just a few clicks. No coding knowledge required.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Text Domain Filtering\u003C\u002Fstrong>\u003Cbr \u002F>\nTarget specific plugins or themes by their text domain, or apply replacements globally across your entire site. This prevents unintended replacements in other plugins.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Case Sensitivity Control\u003C\u002Fstrong>\u003Cbr \u002F>\nChoose whether replacements should match exact case or be case-insensitive for maximum flexibility.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Priority Ordering\u003C\u002Fstrong>\u003Cbr \u002F>\nControl the order in which replacements are applied using priority numbers (1-999). Lower numbers apply first.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Enable\u002FDisable Toggle\u003C\u002Fstrong>\u003Cbr \u002F>\nQuickly activate or deactivate replacements without deleting them. Perfect for testing and seasonal changes.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Bulk Operations\u003C\u002Fstrong>\u003Cbr \u002F>\nSelect multiple replacements and enable, disable, or delete them all at once to save time.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Import\u002FExport\u003C\u002Fstrong>\u003Cbr \u002F>\nExport your replacement configurations to JSON files for backup or transfer to other sites. Import with automatic duplicate detection.\u003C\u002Fp>\n\u003Ch3>Performance Optimized\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Single database query per page load\u003C\u002Fli>\n\u003Cli>Intelligent 24-hour caching system\u003C\u002Fli>\n\u003Cli>Lazy loading of admin assets\u003C\u002Fli>\n\u003Cli>No frontend JavaScript overhead\u003C\u002Fli>\n\u003Cli>Indexed database for fast queries\u003C\u002Fli>\n\u003Cli>Unlimited replacements with optimized performance\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>WordPress Native UI\u003C\u002Fh3>\n\u003Cp>Clean, intuitive interface using WordPress design patterns. Feels like a natural part of WordPress.\u003C\u002Fp>\n\u003Ch3>Search & Sort\u003C\u002Fh3>\n\u003Cp>Easily find and organize your text replacements with built-in search and sorting capabilities.\u003C\u002Fp>\n\u003Ch4>Use Cases\u003C\u002Fh4>\n\u003Ch3>WooCommerce Text Customization\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Change “Add to Cart” to “Add to Bag” or “Buy Now”\u003C\u002Fli>\n\u003Cli>Modify “Proceed to Checkout” to “Complete Purchase”\u003C\u002Fli>\n\u003Cli>Customize product page labels\u003C\u002Fli>\n\u003Cli>Personalize shipping and payment text\u003C\u002Fli>\n\u003Cli>Replace price labels and currency text\u003C\u002Fli>\n\u003Cli>Modify sale badge text\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Contact Form 7 Customization\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Change submit button text\u003C\u002Fli>\n\u003Cli>Modify form field labels\u003C\u002Fli>\n\u003Cli>Customize validation messages\u003C\u002Fli>\n\u003Cli>Personalize success messages\u003C\u002Fli>\n\u003Cli>Replace error message text\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>WordPress Core Text Replacement\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Replace “Howdy” in admin bar\u003C\u002Fli>\n\u003Cli>Change “Dashboard” to “Control Panel”\u003C\u002Fli>\n\u003Cli>Modify menu labels\u003C\u002Fli>\n\u003Cli>Customize admin notices\u003C\u002Fli>\n\u003Cli>Replace login page text\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Theme Text Customization\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Change “Read More” links\u003C\u002Fli>\n\u003Cli>Modify navigation labels\u003C\u002Fli>\n\u003Cli>Customize footer text\u003C\u002Fli>\n\u003Cli>Personalize call-to-action buttons\u003C\u002Fli>\n\u003Cli>Replace copyright text\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How It Works\u003C\u002Fh4>\n\u003Cp>Text Replace hooks into WordPress’s translation system (gettext) to intercept and replace text strings before they’re displayed. This means:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>No file modifications\u003C\u002Fstrong> – Your theme and plugin files remain untouched\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Update-safe\u003C\u002Fstrong> – String replacements persist through updates\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Reversible\u003C\u002Fstrong> – Simply disable or delete replacements to restore original text\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Efficient\u003C\u002Fstrong> – Replacements are cached for optimal performance\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>How to Change WooCommerce “Add to Cart” Text\u003C\u002Fh3>\n\u003Cp>One of the most common uses for Text Replace is customizing WooCommerce button text. Here’s how:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Navigate to \u003Cstrong>Text Replace > Add New\u003C\u002Fstrong> in your WordPress admin\u003C\u002Fli>\n\u003Cli>In the \u003Cstrong>Source String\u003C\u002Fstrong> field, enter: \u003Ccode>Add to cart\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>In the \u003Cstrong>Replacement String\u003C\u002Fstrong> field, enter your desired text (e.g., \u003Ccode>Buy Now\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>In the \u003Cstrong>Text Domain\u003C\u002Fstrong> field, enter: \u003Ccode>woocommerce\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Leave \u003Cstrong>Case Sensitive\u003C\u002Fstrong> unchecked (default)\u003C\u002Fli>\n\u003Cli>Set \u003Cstrong>Priority\u003C\u002Fstrong> to 10 (default)\u003C\u002Fli>\n\u003Cli>Make sure status is set to \u003Cstrong>Active\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Click \u003Cstrong>Save Replacement\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Clear your site cache if using a caching plugin\u003C\u002Fli>\n\u003Cli>Visit a WooCommerce product page to see the change\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Pro Tip:\u003C\u002Fstrong> To change “Add to cart” on single products but keep it on shop\u002Farchive 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.\u003C\u002Fp>\n\u003Ch3>How to Replace Contact Form 7 Button Labels\u003C\u002Fh3>\n\u003Cp>Customize Contact Form 7 submit buttons without editing form code:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Go to \u003Cstrong>Text Replace > Add New\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Source String\u003C\u002Fstrong>: \u003Ccode>Send\u003C\u002Fcode> (or your current button text)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Replacement String\u003C\u002Fstrong>: Your desired button text (e.g., \u003Ccode>Submit Message\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Text Domain\u003C\u002Fstrong>: \u003Ccode>contact-form-7\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Status: \u003Cstrong>Active\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Click \u003Cstrong>Save Replacement\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Clear cache and test your contact form\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Note:\u003C\u002Fstrong> If you have multiple forms with different button text, create separate replacements for each or leave Text Domain empty to replace globally.\u003C\u002Fp>\n\u003Ch3>How to Customize Theme Text Without Editing Files\u003C\u002Fh3>\n\u003Cp>Replace any theme text without touching template files:\u003C\u002Fp>\n\u003Col>\n\u003Cli>First, identify the exact text you want to replace (copy it exactly as it appears)\u003C\u002Fli>\n\u003Cli>Navigate to \u003Cstrong>Text Replace > Add New\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Source String\u003C\u002Fstrong>: The exact theme text (e.g., \u003Ccode>Read More\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Replacement String\u003C\u002Fstrong>: Your new text (e.g., \u003Ccode>Continue Reading\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Text Domain\u003C\u002Fstrong>: Leave empty for global replacement, or enter your theme’s text domain\u003C\u002Fli>\n\u003Cli>Enable \u003Cstrong>Case Sensitive\u003C\u002Fstrong> if exact capitalization matters\u003C\u002Fli>\n\u003Cli>Status: \u003Cstrong>Active\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Save and clear cache\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Finding Your Theme’s Text Domain:\u003C\u002Fstrong> Check your theme’s style.css file header for the “Text Domain” field.\u003C\u002Fp>\n\u003Ch3>How to Find Text Domain for Any Plugin\u003C\u002Fh3>\n\u003Cp>To target a specific plugin with text replacement, you need its text domain:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Method 1: Check Plugin Main File\u003C\u002Fstrong>\u003Cbr \u002F>\n1. Go to Plugins > Plugin File Editor\u003Cbr \u002F>\n2. Select the plugin from dropdown\u003Cbr \u002F>\n3. Look for \u003Ccode>Text Domain:\u003C\u002Fcode> in the file header at the top\u003Cbr \u002F>\n4. Copy the text domain value\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Method 2: Check Translation Files\u003C\u002Fstrong>\u003Cbr \u002F>\n1. Navigate to \u003Ccode>\u002Fwp-content\u002Fplugins\u002F[plugin-name]\u002Flanguages\u002F\u003C\u002Fcode>\u003Cbr \u002F>\n2. Look for .po or .pot files\u003Cbr \u002F>\n3. The filename usually contains the text domain (e.g., \u003Ccode>woocommerce-en_US.po\u003C\u002Fcode> = text domain is \u003Ccode>woocommerce\u003C\u002Fcode>)\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Method 3: Common Plugin Text Domains\u003C\u002Fstrong>\u003Cbr \u002F>\n* WooCommerce: \u003Ccode>woocommerce\u003C\u002Fcode>\u003Cbr \u002F>\n* Contact Form 7: \u003Ccode>contact-form-7\u003C\u002Fcode>\u003Cbr \u002F>\n* Yoast SEO: \u003Ccode>wordpress-seo\u003C\u002Fcode>\u003Cbr \u002F>\n* Elementor: \u003Ccode>elementor\u003C\u002Fcode>\u003Cbr \u002F>\n* Advanced Custom Fields: \u003Ccode>acf\u003C\u002Fcode>\u003Cbr \u002F>\n* Gravity Forms: \u003Ccode>gravityforms\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Pro Tip:\u003C\u002Fstrong> If you can’t find the text domain, leave it blank to replace the text globally across your entire site.\u003C\u002Fp>\n\u003Ch3>How to Set Up Multiple Text Replacements\u003C\u002Fh3>\n\u003Cp>When you need to replace several strings, use priority to control the order:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Plan your replacements\u003C\u002Fstrong> – List all the text you want to change\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Create each replacement\u003C\u002Fstrong> – Go to Text Replace > Add New for each one\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Set priorities:\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>Use priority 10 for most replacements (default)\u003C\u002Fli>\n\u003Cli>Use lower numbers (1-9) for replacements that should happen first\u003C\u002Fli>\n\u003Cli>Use higher numbers (11-99) for replacements that depend on others\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Use Text Domain filtering\u003C\u002Fstrong> – Specify text domain to avoid conflicts\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Test in stages\u003C\u002Fstrong> – Enable a few at a time to verify they work correctly\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Example Priority Setup:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Priority 5: Replace “product” with “item” (happens first)\u003Cbr \u002F>\n* Priority 10: Replace “Add to cart” with “Buy Now” (normal priority)\u003Cbr \u002F>\n* Priority 15: Replace “item price” with “cost” (happens after priority 5 and 10)\u003C\u002Fp>\n\u003Ch3>How to Replace Text Site-Wide vs Plugin-Specific\u003C\u002Fh3>\n\u003Cp>Control where your text replacements apply:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Site-Wide Replacement (Global):\u003C\u002Fstrong>\u003Cbr \u002F>\n1. Create your replacement as normal\u003Cbr \u002F>\n2. \u003Cstrong>Leave Text Domain field EMPTY\u003C\u002Fstrong>\u003Cbr \u002F>\n3. This will replace the text everywhere it appears on your site\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Plugin-Specific Replacement:\u003C\u002Fstrong>\u003Cbr \u002F>\n1. Create your replacement\u003Cbr \u002F>\n2. \u003Cstrong>Enter the plugin’s text domain\u003C\u002Fstrong> (e.g., \u003Ccode>woocommerce\u003C\u002Fcode>)\u003Cbr \u002F>\n3. Text will ONLY be replaced when generated by that specific plugin\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Theme-Specific Replacement:\u003C\u002Fstrong>\u003Cbr \u002F>\n1. Find your theme’s text domain (check style.css)\u003Cbr \u002F>\n2. Enter the theme text domain in the Text Domain field\u003Cbr \u002F>\n3. Text will ONLY be replaced in theme-generated content\u003C\u002Fp>\n\u003Cp>\u003Cstrong>When to Use Each:\u003C\u002Fstrong>\u003Cbr \u002F>\n* \u003Cstrong>Global (empty text domain):\u003C\u002Fstrong> When you want to replace text regardless of source\u003Cbr \u002F>\n* \u003Cstrong>Plugin-specific:\u003C\u002Fstrong> When text appears in multiple places but you only want to change it in one plugin\u003Cbr \u002F>\n* \u003Cstrong>Theme-specific:\u003C\u002Fstrong> When replacing navigation, headers, footers, or theme-specific UI text\u003C\u002Fp>\n\u003Ch3>How to Test Text Replacements Without Affecting Live Site\u003C\u002Fh3>\n\u003Cp>Test your replacements safely before going live:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Method 1: Use Enable\u002FDisable Toggle\u003C\u002Fstrong>\u003Cbr \u002F>\n1. Create your replacement with status \u003Cstrong>Inactive\u003C\u002Fstrong>\u003Cbr \u002F>\n2. Save the replacement\u003Cbr \u002F>\n3. Log out and view your site in an incognito window\u003Cbr \u002F>\n4. Log back in and toggle to \u003Cstrong>Active\u003C\u002Fstrong> when ready\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Method 2: Test on Staging Site\u003C\u002Fstrong>\u003Cbr \u002F>\n1. Create replacements on your staging site\u003Cbr \u002F>\n2. Test thoroughly\u003Cbr \u002F>\n3. Export via \u003Cstrong>Text Replace > Import\u002FExport\u003C\u002Fstrong>\u003Cbr \u002F>\n4. Import the JSON file on your live site\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Method 3: Use Priority to Test Incrementally\u003C\u002Fstrong>\u003Cbr \u002F>\n1. Set test replacements to high priority (90-99)\u003Cbr \u002F>\n2. This makes them easy to identify and remove\u003Cbr \u002F>\n3. Once tested, adjust priority to normal (10)\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Pro Tip:\u003C\u002Fstrong> Always clear your cache after making changes, then test in an incognito\u002Fprivate browser window to see changes immediately.\u003C\u002Fp>\n\u003Ch3>How to Export and Import Text Replacements\u003C\u002Fh3>\n\u003Cp>Transfer your text replacements between sites easily:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>To Export:\u003C\u002Fstrong>\u003Cbr \u002F>\n1. Go to \u003Cstrong>Text Replace > Import\u002FExport\u003C\u002Fstrong>\u003Cbr \u002F>\n2. Click \u003Cstrong>Export All Replacements\u003C\u002Fstrong>\u003Cbr \u002F>\n3. A JSON file will download to your computer\u003Cbr \u002F>\n4. This file contains all your active and inactive replacements\u003C\u002Fp>\n\u003Cp>\u003Cstrong>To Import:\u003C\u002Fstrong>\u003Cbr \u002F>\n1. Go to \u003Cstrong>Text Replace > Import\u002FExport\u003C\u002Fstrong> on the destination site\u003Cbr \u002F>\n2. Click \u003Cstrong>Choose File\u003C\u002Fstrong> and select your exported JSON file\u003Cbr \u002F>\n3. Click \u003Cstrong>Import\u003C\u002Fstrong>\u003Cbr \u002F>\n4. The plugin will automatically detect and skip duplicates\u003Cbr \u002F>\n5. New replacements will be imported with all settings intact\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Use Cases for Import\u002FExport:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Transfer replacements from staging to production\u003Cbr \u002F>\n* Backup your replacements before major updates\u003Cbr \u002F>\n* Share replacement configurations between multiple sites\u003Cbr \u002F>\n* Migrate from one server to another\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Pro Tip:\u003C\u002Fstrong> Export your replacements monthly as a backup. Store the JSON file in your site backups.\u003C\u002Fp>\n\u003Ch3>How to Find and Replace Text in WooCommerce Emails\u003C\u002Fh3>\n\u003Cp>Customize WooCommerce email text without editing templates:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Identify the exact text in the email you want to change\u003C\u002Fli>\n\u003Cli>Go to \u003Cstrong>Text Replace > Add New\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Source String\u003C\u002Fstrong>: The email text (e.g., \u003Ccode>Thank you for your order\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Replacement String\u003C\u002Fstrong>: Your custom text (e.g., \u003Ccode>Thanks for shopping with us!\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Text Domain\u003C\u002Fstrong>: \u003Ccode>woocommerce\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Status: \u003Cstrong>Active\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Save and send a test email\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Common WooCommerce Email Strings:\u003C\u002Fstrong>\u003Cbr \u002F>\n* “Order received” \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Your custom text\u003Cbr \u002F>\n* “Payment method” \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Your custom text\u003Cbr \u002F>\n* “Billing address” \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Your custom text\u003Cbr \u002F>\n* “Order details” \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Your custom text\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Testing:\u003C\u002Fstrong> Use WooCommerce > Settings > Emails > Send test email to verify changes.\u003C\u002Fp>\n\u003Ch4>Developer Friendly\u003C\u002Fh4>\n\u003Cp>Includes hooks and filters for developers:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>etrp_replacement_text\u003C\u002Fcode> – Filter text before replacement\u003C\u002Fli>\n\u003Cli>\u003Ccode>etrp_replacement_result\u003C\u002Fcode> – Filter text after replacement\u003C\u002Fli>\n\u003Cli>\u003Ccode>etrp_active_replacements\u003C\u002Fcode> – Modify active replacements array\u003C\u002Fli>\n\u003Cli>\u003Ccode>etrp_max_replacements\u003C\u002Fcode> – Adjust maximum replacement limit (default: unlimited)\u003C\u002Fli>\n\u003Cli>\u003Ccode>etrp_before_replacement_apply\u003C\u002Fcode> – Action before replacement\u003C\u002Fli>\n\u003Cli>\u003Ccode>etrp_after_replacement_apply\u003C\u002Fcode> – Action after replacement\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Example: Programmatically Add Replacement\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`php\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>add_filter(‘etrp_active_replacements’, function($replacements) {\u003Cbr \u002F>\n    $replacements[] = array(\u003Cbr \u002F>\n        ‘source’ => ‘Add to cart’,\u003Cbr \u002F>\n        ‘replacement’ => ‘Buy Now’,\u003Cbr \u002F>\n        ‘text_domain’ => ‘woocommerce’,\u003Cbr \u002F>\n        ‘case_sensitive’ => false,\u003Cbr \u002F>\n        ‘priority’ => 10\u003Cbr \u002F>\n    );\u003Cbr \u002F>\n    return $replacements;\u003Cbr \u002F>\n});\u003Cbr \u002F>\n    `\u003C\u002Fp>\n\u003Ch4>Support\u003C\u002Fh4>\n\u003Cp>Need help? Visit our \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Feasy-text-replace\u002F\" rel=\"ugc\">support forum\u003C\u002Fa> for assistance.\u003C\u002Fp>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>Text Replace does not collect, store, or transmit any personal data. All replacement configurations are stored locally in your WordPress database.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Developed with ❤️ for the WordPress community.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For bug reports, feature requests, and support, please visit:\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Feasy-text-replace\u002F\" rel=\"ugc\">Support Forum\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Translations\u003C\u002Fh3>\n\u003Cp>Text Replace is translation-ready and includes:\u003Cbr \u002F>\nEnglish (default)\u003C\u002Fp>\n\u003Cp>Want to translate Text Replace into your language? Visit \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Feasy-text-replace\u002F\" rel=\"nofollow ugc\">WordPress Translate\u003C\u002Fa>.\u003C\u002Fp>\n","Find and replace any WordPress text without coding. Change WooCommerce buttons, form labels, and theme text. Update-safe and cached.",799,"2026-03-01T05:06:00.000Z","5.8",[133,134,135,4,136],"find-and-replace","gettext","string-replacement","woocommerce","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Feasy-text-replace\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-text-replace.1.0.5.zip",{"attackSurface":140,"codeSignals":193,"taintFlows":249,"riskAssessment":250,"analyzedAt":259},{"hooks":141,"ajaxHandlers":189,"restRoutes":190,"shortcodes":191,"cronEvents":192,"entryPointCount":28,"unprotectedCount":28},[142,147,151,155,161,166,169,172,176,182,185],{"type":143,"name":144,"callback":144,"file":145,"line":146},"action","init","c2c-plugin.php",122,{"type":143,"name":148,"callback":149,"file":145,"line":150},"admin_init","init_options",125,{"type":143,"name":152,"callback":153,"file":145,"line":154},"admin_head","add_c2c_admin_css",126,{"type":156,"name":157,"callback":158,"priority":159,"file":145,"line":160},"filter","plugin_row_meta","donate_link",10,189,{"type":156,"name":162,"callback":163,"priority":164,"file":145,"line":165},"http_request_args","disable_update_check",5,192,{"type":143,"name":167,"callback":167,"file":145,"line":168},"admin_menu",196,{"type":156,"name":170,"callback":170,"priority":159,"file":145,"line":171},"contextual_help",199,{"type":143,"name":173,"callback":174,"file":145,"line":175},"admin_enqueue_scripts","add_thickbox",201,{"type":156,"name":177,"callback":178,"priority":179,"file":180,"line":181},"get_comment_text","text_replace_comment_text",11,"text-replace.php",315,{"type":156,"name":183,"callback":178,"priority":179,"file":180,"line":184},"get_comment_excerpt",316,{"type":143,"name":186,"callback":187,"file":180,"line":188},"plugins_loaded","get_instance",602,[],[],[],[],{"dangerousFunctions":194,"sqlUsage":199,"outputEscaping":201,"fileOperations":28,"externalRequests":28,"nonceChecks":28,"capabilityChecks":247,"bundledLibraries":248},[195],{"fn":196,"file":145,"line":197,"context":198},"unserialize",298,"$plugins = unserialize( $r['body']['plugins'] );",{"prepared":28,"raw":28,"locations":200},[],{"escaped":70,"rawEcho":202,"locations":203},21,[204,207,209,211,213,215,217,219,221,223,225,227,229,231,233,235,237,239,241,243,245],{"file":145,"line":205,"context":206},355,"raw output",{"file":145,"line":208,"context":206},358,{"file":145,"line":210,"context":206},644,{"file":145,"line":212,"context":206},1013,{"file":145,"line":214,"context":206},1015,{"file":145,"line":216,"context":206},1018,{"file":145,"line":218,"context":206},1022,{"file":145,"line":220,"context":206},1029,{"file":145,"line":222,"context":206},1033,{"file":145,"line":224,"context":206},1039,{"file":145,"line":226,"context":206},1042,{"file":145,"line":228,"context":206},1045,{"file":145,"line":230,"context":206},1059,{"file":145,"line":232,"context":206},1066,{"file":180,"line":234,"context":206},406,{"file":180,"line":236,"context":206},408,{"file":180,"line":238,"context":206},409,{"file":180,"line":240,"context":206},412,{"file":180,"line":242,"context":206},413,{"file":180,"line":244,"context":206},414,{"file":180,"line":246,"context":206},418,1,[],[],{"summary":251,"deductions":252},"The \"text-replace\" v4.0 plugin presents a mixed security posture.  On the positive side, there are no reported vulnerabilities (CVEs) and the plugin demonstrates good practices in its SQL query handling, with 100% using prepared statements.  Furthermore, the attack surface appears minimal with no AJAX handlers, REST API routes, shortcodes, or cron events exposed.  However, a significant concern arises from the presence of the `unserialize()` function, which is a known risk vector for arbitrary code execution if used with untrusted input.  The limited output escaping (36%) also suggests a potential for cross-site scripting (XSS) vulnerabilities if user-controlled data is not properly sanitized before being displayed.\n\nThe vulnerability history is clean, which is a positive indicator. This suggests the developers may have been diligent in addressing security in previous versions or that the plugin has not been a target for sophisticated attacks.  However, the absence of vulnerabilities does not equate to perfect security, especially when inherent risky functions like `unserialize()` are present.  The taint analysis showing zero flows is also encouraging, but this might be due to the limited nature of the analysis or the plugin's architecture not exposing data flow to such an extent.\n\nIn conclusion, while the plugin boasts a clean CVE history and secure SQL practices, the presence of `unserialize()` and insufficient output escaping are notable weaknesses that require attention. The minimal attack surface is a strength, but it does not negate the risks posed by these specific code signals. Users should be aware of these potential issues and consider whether the benefits of the plugin outweigh the inherent risks.",[253,256],{"reason":254,"points":255},"Use of unserialize() without sanitization",15,{"reason":257,"points":258},"Low percentage of properly escaped output",6,"2026-03-16T18:17:52.081Z",{"wat":261,"direct":269},{"assetPaths":262,"generatorPatterns":264,"scriptPaths":265,"versionParams":266},[263],"\u002Fwp-content\u002Fplugins\u002Ftext-replace\u002F",[],[],[267,268],"text-replace\u002Fstyle.css?ver=","text-replace\u002Fscript.js?ver=",{"cssClasses":270,"htmlComments":271,"htmlAttributes":284,"restEndpoints":286,"jsGlobals":287,"shortcodeOutput":289},[],[272,273,274,275,276,277,278,279,280,281,282,283],"Copyright (c) 2004-2021 by Scott Reilly (aka coffee2code)","This program is free software; you can redistribute it and\u002For","modify it under the terms of the GNU General Public License","as published by the Free Software Foundation; either version 2","of the License, or (at your option) any later version.","This program is distributed in the hope that it will be useful,","but WITHOUT ANY WARRANTY; without even the implied warranty of","MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the","GNU General Public License for more details.","You should have received a copy of the GNU General Public License","along with this program; if not, write to the Free Software","Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.",[285],"data-c2c-text-replace-settings",[],[288],"c2c_TextReplace",[],{"error":291,"url":292,"statusCode":293,"statusMessage":294,"message":294},true,"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Ftext-replace\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":296,"versions":297},19,[298,304,311,318,325,332,339,346,353,360,367,374,381,388,395,402,409,416,423],{"version":6,"download_url":26,"svn_tag_url":299,"released_at":29,"has_diff":300,"diff_files_changed":301,"diff_lines":29,"trac_diff_url":302,"vulnerabilities":303,"is_current":291},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F4.0\u002F",false,[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F3.9.1&new_path=%2Ftext-replace%2Ftags%2F4.0",[],{"version":305,"download_url":306,"svn_tag_url":307,"released_at":29,"has_diff":300,"diff_files_changed":308,"diff_lines":29,"trac_diff_url":309,"vulnerabilities":310,"is_current":300},"3.9.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.3.9.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F3.9.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F3.9&new_path=%2Ftext-replace%2Ftags%2F3.9.1",[],{"version":312,"download_url":313,"svn_tag_url":314,"released_at":29,"has_diff":300,"diff_files_changed":315,"diff_lines":29,"trac_diff_url":316,"vulnerabilities":317,"is_current":300},"3.9","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.3.9.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F3.9\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F3.8&new_path=%2Ftext-replace%2Ftags%2F3.9",[],{"version":319,"download_url":320,"svn_tag_url":321,"released_at":29,"has_diff":300,"diff_files_changed":322,"diff_lines":29,"trac_diff_url":323,"vulnerabilities":324,"is_current":300},"3.8","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.3.8.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F3.8\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F3.7&new_path=%2Ftext-replace%2Ftags%2F3.8",[],{"version":326,"download_url":327,"svn_tag_url":328,"released_at":29,"has_diff":300,"diff_files_changed":329,"diff_lines":29,"trac_diff_url":330,"vulnerabilities":331,"is_current":300},"3.7","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.3.7.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F3.7\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F3.6.1&new_path=%2Ftext-replace%2Ftags%2F3.7",[],{"version":333,"download_url":334,"svn_tag_url":335,"released_at":29,"has_diff":300,"diff_files_changed":336,"diff_lines":29,"trac_diff_url":337,"vulnerabilities":338,"is_current":300},"3.6.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.3.6.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F3.6.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F3.6&new_path=%2Ftext-replace%2Ftags%2F3.6.1",[],{"version":340,"download_url":341,"svn_tag_url":342,"released_at":29,"has_diff":300,"diff_files_changed":343,"diff_lines":29,"trac_diff_url":344,"vulnerabilities":345,"is_current":300},"3.6","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.3.6.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F3.6\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F3.5.1&new_path=%2Ftext-replace%2Ftags%2F3.6",[],{"version":347,"download_url":348,"svn_tag_url":349,"released_at":29,"has_diff":300,"diff_files_changed":350,"diff_lines":29,"trac_diff_url":351,"vulnerabilities":352,"is_current":300},"3.5.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.3.5.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F3.5.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F3.5&new_path=%2Ftext-replace%2Ftags%2F3.5.1",[],{"version":354,"download_url":355,"svn_tag_url":356,"released_at":29,"has_diff":300,"diff_files_changed":357,"diff_lines":29,"trac_diff_url":358,"vulnerabilities":359,"is_current":300},"3.5","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.3.5.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F3.5\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F3.2.2&new_path=%2Ftext-replace%2Ftags%2F3.5",[],{"version":361,"download_url":362,"svn_tag_url":363,"released_at":29,"has_diff":300,"diff_files_changed":364,"diff_lines":29,"trac_diff_url":365,"vulnerabilities":366,"is_current":300},"3.2.2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.3.2.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F3.2.2\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F3.2.1&new_path=%2Ftext-replace%2Ftags%2F3.2.2",[],{"version":368,"download_url":369,"svn_tag_url":370,"released_at":29,"has_diff":300,"diff_files_changed":371,"diff_lines":29,"trac_diff_url":372,"vulnerabilities":373,"is_current":300},"3.2.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.3.2.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F3.2.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F3.2&new_path=%2Ftext-replace%2Ftags%2F3.2.1",[],{"version":375,"download_url":376,"svn_tag_url":377,"released_at":29,"has_diff":300,"diff_files_changed":378,"diff_lines":29,"trac_diff_url":379,"vulnerabilities":380,"is_current":300},"3.2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.3.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F3.2\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F3.1.1&new_path=%2Ftext-replace%2Ftags%2F3.2",[],{"version":382,"download_url":383,"svn_tag_url":384,"released_at":29,"has_diff":300,"diff_files_changed":385,"diff_lines":29,"trac_diff_url":386,"vulnerabilities":387,"is_current":300},"3.1.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.3.1.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F3.1.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F3.1&new_path=%2Ftext-replace%2Ftags%2F3.1.1",[],{"version":389,"download_url":390,"svn_tag_url":391,"released_at":29,"has_diff":300,"diff_files_changed":392,"diff_lines":29,"trac_diff_url":393,"vulnerabilities":394,"is_current":300},"3.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.3.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F3.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F3.0.2&new_path=%2Ftext-replace%2Ftags%2F3.1",[],{"version":396,"download_url":397,"svn_tag_url":398,"released_at":29,"has_diff":300,"diff_files_changed":399,"diff_lines":29,"trac_diff_url":400,"vulnerabilities":401,"is_current":300},"3.0.2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.3.0.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F3.0.2\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F3.0&new_path=%2Ftext-replace%2Ftags%2F3.0.2",[],{"version":403,"download_url":404,"svn_tag_url":405,"released_at":29,"has_diff":300,"diff_files_changed":406,"diff_lines":29,"trac_diff_url":407,"vulnerabilities":408,"is_current":300},"3.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.3.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F3.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F2.5&new_path=%2Ftext-replace%2Ftags%2F3.0",[],{"version":410,"download_url":411,"svn_tag_url":412,"released_at":29,"has_diff":300,"diff_files_changed":413,"diff_lines":29,"trac_diff_url":414,"vulnerabilities":415,"is_current":300},"2.5","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.2.5.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F2.5\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F2.0&new_path=%2Ftext-replace%2Ftags%2F2.5",[],{"version":417,"download_url":418,"svn_tag_url":419,"released_at":29,"has_diff":300,"diff_files_changed":420,"diff_lines":29,"trac_diff_url":421,"vulnerabilities":422,"is_current":300},"2.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.2.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F2.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftext-replace%2Ftags%2F1.0&new_path=%2Ftext-replace%2Ftags%2F2.0",[],{"version":85,"download_url":424,"svn_tag_url":425,"released_at":29,"has_diff":300,"diff_files_changed":426,"diff_lines":29,"trac_diff_url":29,"vulnerabilities":427,"is_current":300},"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftext-replace.1.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftext-replace\u002Ftags\u002F1.0\u002F",[],[]]