[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fqOme-_ihFG32lwe-P5UIKO7rOiFmTJy4Y8V8hvabjUc":3},{"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":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":17,"download_link":22,"security_score":23,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25,"vulnerabilities":26,"developer":27,"crawl_stats":24,"alternatives":34,"analysis":132,"fingerprints":208},"flairbees-post-word-filter-and-replace","FlairBees Post Word Filter & Replace","1.1.0","Imran Hosein Khan Joy","https:\u002F\u002Fprofiles.wordpress.org\u002Fgreatkhanjoy\u002F","\u003Cp>An easy to use plugin that allows you to filter an replace words\u002Fstrings on your site post’s without editing WordPress core, or plugin code. Simply enter the current string, and what you want to replace it with and the plugin will automatically do the rest!\u003C\u002Fp>\n","An easy to use plugin that allows you to filter an replace words\u002Fstrings on your site post's without editing WordPress",10,1237,0,"2025-10-09T16:36:00.000Z","6.8.5","4.6","",[19,20,21],"find-and-replace","replace","word-filter","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fflairbees-post-word-filter-and-replace.1.1.1.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":28,"display_name":7,"profile_url":8,"plugin_count":29,"total_installs":30,"avg_security_score":23,"avg_patch_time_days":31,"trust_score":32,"computed_at":33},"greatkhanjoy",2,60,30,94,"2026-04-05T12:33:49.349Z",[35,58,77,95,113],{"slug":36,"name":37,"version":38,"author":39,"author_profile":40,"description":41,"short_description":42,"active_installs":43,"downloaded":44,"rating":45,"num_ratings":46,"last_updated":47,"tested_up_to":48,"requires_at_least":49,"requires_php":17,"tags":50,"homepage":54,"download_link":55,"security_score":56,"vuln_count":29,"unpatched_count":13,"last_vuln_date":57,"fetched_at":25},"real-time-find-and-replace","Real-Time Find and Replace","4.3","Marios Alexandrou","https:\u002F\u002Fprofiles.wordpress.org\u002Fmarios-alexandrou\u002F","\u003Cp>This plugin allows you to dynamically (i.e. at the time when a page is generated) replace code and text from themes and other plugins with code and text of your choosing before a page is delivered to a user’s browser.\u003C\u002Fp>\n\u003Cp>Because the find and replace happens in real-time no changes are needed to plugins or themes which means upgrades remain easy!\u003C\u002Fp>\n\u003Cp>A \u003Ca href=\"https:\u002F\u002Finfolific.com\u002Ftechnology\u002Fsoftware-worth-using\u002Freal-time-find-and-replace-for-wordpress\u002F#pro-version\" rel=\"nofollow ugc\">pro version\u003C\u002Fa> (a lifetime license is less than $15) with additional filtering options, setting export\u002Fimport functionality, and the ability to modify admin pages is available.\u003C\u002Fp>\n\u003Cp>Here are some common uses:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Want to selectively translate text that is being output by another plugin? You can do that.\u003C\u002Fli>\n\u003Cli>Trying to tweak the text on a product or shopping cart page? No problem.\u003C\u002Fli>\n\u003Cli>Hoping to remove footer text from a theme without modifying the theme? That’s easy.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Here are some \u003Ca href=\"https:\u002F\u002Finfolific.com\u002Ftechnology\u002Finternet\u002Fhandiest-wordpress-plugin-youve-never-heard-of\u002F\" rel=\"nofollow ugc\">more examples\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>And some \u003Ca href=\"https:\u002F\u002Finfolific.com\u002Ftechnology\u002Finternet\u002Fwordpress-seo-with-real-time-find-and-replace-plugin\u002F\" rel=\"nofollow ugc\">tips for those interested in on-page SEO\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Remember, all of the above can be done WITHOUT modifying themes or plugin files so you’ll always be able to upgrade them without having to worry about losing custom edits.\u003C\u002Fp>\n","Set up find and replace rules that are executed AFTER a page is generated by WordPress, but BEFORE it is sent to a user's browser.",80000,896251,88,83,"2025-12-29T14:20:00.000Z","6.9.4","5.0",[19,51,20,52,53],"on-demand-replace","search","search-and-replace","http:\u002F\u002Finfolific.com\u002Ftechnology\u002Fsoftware-worth-using\u002Freal-time-find-and-replace-for-wordpress\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Freal-time-find-and-replace.zip",98,"2020-04-27 00:00:00",{"slug":59,"name":60,"version":61,"author":62,"author_profile":63,"description":64,"short_description":65,"active_installs":66,"downloaded":67,"rating":68,"num_ratings":69,"last_updated":70,"tested_up_to":15,"requires_at_least":49,"requires_php":71,"tags":72,"homepage":17,"download_link":76,"security_score":23,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25},"easy-search-replace","Easy Search Replace – Find & Replace Text\u002FHTML\u002FURLs, Remove Footer Credit","1.1.2","Uzair","https:\u002F\u002Fprofiles.wordpress.org\u002Feasywpstuff\u002F","\u003Cp>The \u003Cstrong>Easy Search Replace\u003C\u002Fstrong> plugin lets you \u003Cstrong>find and replace\u003C\u002Fstrong> any text, HTML, or URL across your WordPress site in real time—without editing files or the database.\u003Cbr \u002F>\nIt’s the safest way to do \u003Cstrong>search and replace\u003C\u002Fstrong> on front-end output. Update branding, fix old links, or \u003Cstrong>remove footer credit\u003C\u002Fstrong> with a few clicks.\u003C\u002Fp>\n\u003Cp>Target replacements precisely with:\u003Cbr \u002F>\n– CSS selectors (e.g., \u003Ccode>.footer\u003C\u002Fcode>, \u003Ccode>#site-title\u003C\u002Fcode>, \u003Ccode>h2\u003C\u002Fcode>)\u003Cbr \u002F>\n– Post Types (Posts, Pages, CPTs)\u003Cbr \u002F>\n– Specific Post IDs (comma separated)\u003Cbr \u002F>\n– Exact URLs (one per line)\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Why it’s safe:\u003C\u002Fstrong>\u003Cbr \u002F>\nAll changes are applied dynamically at render time. Disable the plugin and your original content is unchanged.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Popular use cases\u003C\u002Fstrong>\u003Cbr \u002F>\n– Remove or replace theme footer credits.\u003Cbr \u002F>\n– Replace company names, links, or copyright lines.\u003Cbr \u002F>\n– Update outdated or HTTP\u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan>HTTPS URLs.\u003Cbr \u002F>\n– Find\u002Freplace only inside specific HTML elements.\u003Cbr \u002F>\n– Limit changes to selected posts\u002Fpages\u002FURLs.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Real-time \u003Cstrong>search replace\u003C\u002Fstrong> and \u003Cstrong>find replace\u003C\u002Fstrong> for text, HTML, and URLs.  \u003C\u002Fli>\n\u003Cli>Remove footer credit or any unwanted text\u002Flink.  \u003C\u002Fli>\n\u003Cli>Optional \u003Cstrong>CSS selector\u003C\u002Fstrong> targeting (classes, IDs, tags).  \u003C\u002Fli>\n\u003Cli>Limit by \u003Cstrong>post type\u003C\u002Fstrong>, \u003Cstrong>post ID\u003C\u002Fstrong>, or \u003Cstrong>URL\u003C\u002Fstrong>.  \u003C\u002Fli>\n\u003Cli>Case-insensitive mode (Ignore Case).  \u003C\u002Fli>\n\u003Cli>Multiple rules, executed in order.  \u003C\u002Fli>\n\u003Cli>Lightweight: parses DOM only when selector rules exist.  \u003C\u002Fli>\n\u003Cli>Clean, simple settings UI.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Open \u003Cstrong>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Easy Search Replace\u003C\u002Fstrong>.  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Find\u003C\u002Fstrong>: Enter text\u002FHTML\u002FURL to search.  \u003C\u002Fli>\n\u003Cli>\u003Cstrong>Replace with\u003C\u002Fstrong>: Enter the replacement (leave empty to remove—great for footer credits).  \u003C\u002Fli>\n\u003Cli>\u003Cem>(Optional)\u003C\u002Fem> \u003Cstrong>CSS Selector\u003C\u002Fstrong> to restrict to specific elements (e.g., \u003Ccode>.site-footer\u003C\u002Fcode>, \u003Ccode>#main\u003C\u002Fcode>, \u003Ccode>h1\u003C\u002Fcode>).  \u003C\u002Fli>\n\u003Cli>\u003Cem>(Optional)\u003C\u002Fem> Limit by \u003Cstrong>Post Types\u003C\u002Fstrong>, \u003Cstrong>Post IDs\u003C\u002Fstrong>, or \u003Cstrong>URLs\u003C\u002Fstrong> (one per line).  \u003C\u002Fli>\n\u003Cli>Enable \u003Cstrong>Ignore Case\u003C\u002Fstrong> if needed.  \u003C\u002Fli>\n\u003Cli>Add multiple rules and \u003Cstrong>Save Changes\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Examples\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Replace text globally\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Find: Old Company\u003Cbr \u002F>\nReplace: New Company\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Remove footer credit (selector-based)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Find: Powered by MyTheme\u003Cbr \u002F>\nReplace:\u003Cbr \u002F>\nSelector: .site-footer\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Replace URL site-wide\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Find: http:\u002F\u002Foldsite.com\u003Cbr \u002F>\nReplace: https:\u002F\u002Fnewsite.com\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Only on specific posts\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Find: Coming Soon\u003Cbr \u002F>\nReplace: Launching Now\u003Cbr \u002F>\nPost IDs: 25,47,88\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Case-insensitive\u003C\u002Fstrong>\u003Cbr \u002F>\nEnable \u003Cstrong>Ignore Case\u003C\u002Fstrong> to match “WordPress”, “wordpress”, etc.\u003C\u002Fp>\n","Real-time search & replace for text, HTML, and URLs. Target elements, post types\u002FIDs\u002FURLs. Safely remove footer credit no database changes.",300,2697,86,3,"2025-11-10T13:57:00.000Z","7.2",[73,19,74,53,75],"find-replace","remove-footer-credit","search-replace","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-search-replace.1.1.2.zip",{"slug":78,"name":79,"version":80,"author":81,"author_profile":82,"description":83,"short_description":84,"active_installs":23,"downloaded":85,"rating":23,"num_ratings":29,"last_updated":86,"tested_up_to":15,"requires_at_least":87,"requires_php":88,"tags":89,"homepage":17,"download_link":94,"security_score":23,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25},"bulk-edit-post-title","Bulk Edit Post Title","1.2.1","Dominopress","https:\u002F\u002Fprofiles.wordpress.org\u002Fdominopress\u002F","\u003Cp>The Bulk Edit Post Title plugin provides a comprehensive solution for managing post titles in bulk, featuring:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Core Features:\u003C\u002Fstrong>\u003Cbr \u002F>\n– Bulk Title Addition: Append text to multiple titles\u003Cbr \u002F>\n– Bulk Title Editor: Edit individual titles in a scrollable popup interface\u003Cbr \u002F>\n– Find & Replace: Search and replace text across multiple titles\u003Cbr \u002F>\n– Role-based Access Control: Limited to Editors and Administrators\u003Cbr \u002F>\n– Real-time Previews: See changes before applying\u003Cbr \u002F>\n– Success Notifications: Visual confirmation of updates\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Security Features:\u003C\u002Fstrong>\u003Cbr \u002F>\n– Nonce verification for all operations\u003Cbr \u002F>\n– Role-based capability checks\u003Cbr \u002F>\n– Data sanitization and validation\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Optimized UI:\u003C\u002Fstrong>\u003Cbr \u002F>\n– Responsive popup design\u003Cbr \u002F>\n– Scrollable edit interface\u003Cbr \u002F>\n– Intuitive bulk action integration\u003C\u002Fp>\n","Efficiently modify multiple post titles in bulk with three powerful editing modes. Designed for WordPress content managers and editors.",1944,"2025-11-22T04:42:00.000Z","6.0","7.4",[90,91,19,92,93],"bulk-actions","bulk-edit","post-title","title-modification","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbulk-edit-post-title.1.2.1.zip",{"slug":96,"name":97,"version":98,"author":99,"author_profile":100,"description":101,"short_description":102,"active_installs":103,"downloaded":104,"rating":23,"num_ratings":105,"last_updated":106,"tested_up_to":15,"requires_at_least":107,"requires_php":88,"tags":108,"homepage":111,"download_link":112,"security_score":23,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25},"word-replace","Word Replace","0.8.0","mehdi jalili","https:\u002F\u002Fprofiles.wordpress.org\u002Fmehdijalili\u002F","\u003Cp>The plugin provides an optimized replace function. It incorporates a dynamic real-time word\u002Ftext replacing feature.\u003C\u002Fp>\n\u003Ch3>More Details\u003C\u002Fh3>\n\u003Cp>Ideal for bulk updates and site migrations, it offers powerful tools to find and replace any text and special characters across your website.\u003C\u002Fp>\n\u003Cp>The real-time replacement employs an advanced word masking technique to search and replace text and special characters, leaving no trace behind. The find and replace process takes place before the website is\u003Cbr \u002F>\nrendered in the browser and does not impact any other files or databases. With this ultimate solution, replace the particular text you want in the header, body, footer credits,\u003Cbr \u002F>\nor any other content within your website without touching the database, with the help of an easy-to-use user interface.\u003C\u002Fp>\n\u003Ch3>Key Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Entire Website – if you want to apply rules all over the website\u003C\u002Fli>\n\u003Cli>Particular Page – if you want to apply rules on particular pages\u003C\u002Fli>\n\u003Cli>Particular Post – if you want to apply rules on particular posts\u003C\u002Fli>\n\u003Cli>Unicode – replace Unicode characters\u003C\u002Fli>\n\u003Cli>Easy-to-use and user-friendly options\u003C\u002Fli>\n\u003Cli>Replace any text without touching the database\u003C\u002Fli>\n\u003Cli>Replace text loaded by \u003Cstrong>Ajax\u002FjQuery\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Remove or change footer credit without touching the database or HTML code\u003C\u002Fli>\n\u003Cli>Mask bad words posted in comments \u003C\u002Fli>\n\u003Cli>Change different languages’ content to your own language\u003C\u002Fli>\n\u003Cli>Real-time replace compatible with Gutenberg and other block\u002Fpage builders\u003C\u002Fli>\n\u003Cli>Ultimate easy solution to restore data you have replaced by mistake\u003C\u002Fli>\n\u003Cli>Replace \u003Cstrong>Unicode characters\u003C\u002Fstrong> \u003Cem>UTF-8  (e.g.: U+0026, REČA)\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>Easy to undo the changes by removing the specific rule\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Questions and Feature Requests\u003C\u002Fh4>\n\u003Cblockquote>\n\u003Ch4>For quick support, feature requests, and bug reporting\u003C\u002Fh4>\n\u003Cul>\n\u003Cli> For more dedicated support or feature requests, write to us at \u003Ca href=\"mailto:jalilimehdi.1366@gmail.com\" rel=\"nofollow ugc\">jalilimehdi.1366@gmail.com\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>As it’s open source, check our GitHub development status\u003C\u002Fh4>\n\u003Cul>\n\u003Cli> Check development status or issues on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmehdi-jalili\u002Fw-replace\" rel=\"nofollow ugc\">github.com\u002Fmehdi-jalili\u002Fw-replace\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fblockquote>\n","Easily Replace text, footer credits, jQuery\u002FAjax loaded text or anything in real-time.",90,953,1,"2025-09-17T16:37:00.000Z","6.4",[109,19,20,53,110],"block-editor","search-replace-elementor","https:\u002F\u002Fgithub.com\u002Fmehdi-jalili\u002Fword-replace\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fword-replace.zip",{"slug":114,"name":115,"version":116,"author":117,"author_profile":118,"description":119,"short_description":120,"active_installs":121,"downloaded":122,"rating":23,"num_ratings":69,"last_updated":123,"tested_up_to":48,"requires_at_least":124,"requires_php":88,"tags":125,"homepage":130,"download_link":131,"security_score":23,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25},"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.",50,554,"2026-03-01T05:06:00.000Z","5.8",[19,126,127,128,129],"gettext","string-replacement","text-replace","woocommerce","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Feasy-text-replace\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-text-replace.1.0.5.zip",{"attackSurface":133,"codeSignals":154,"taintFlows":174,"riskAssessment":201,"analyzedAt":207},{"hooks":134,"ajaxHandlers":150,"restRoutes":151,"shortcodes":152,"cronEvents":153,"entryPointCount":13,"unprotectedCount":13},[135,141,145],{"type":136,"name":137,"callback":138,"file":139,"line":140},"action","admin_menu","adminMenu","word-filter.php",22,{"type":136,"name":142,"callback":143,"file":139,"line":144},"admin_init","wordFilterSettings",23,{"type":146,"name":147,"callback":148,"file":139,"line":149},"filter","the_content","filterLogic",25,[],[],[],[],{"dangerousFunctions":155,"sqlUsage":156,"outputEscaping":158,"fileOperations":13,"externalRequests":13,"nonceChecks":105,"capabilityChecks":105,"bundledLibraries":173},[],{"prepared":13,"raw":13,"locations":157},[],{"escaped":159,"rawEcho":160,"locations":161},11,5,[162,165,167,169,171],{"file":139,"line":163,"context":164},45,"raw output",{"file":139,"line":166,"context":164},95,{"file":139,"line":168,"context":164},101,{"file":139,"line":170,"context":164},121,{"file":139,"line":172,"context":164},133,[],[175,193],{"entryPoint":176,"graph":177,"unsanitizedCount":13,"severity":192},"handleForm (word-filter.php:89)",{"nodes":178,"edges":189},[179,184],{"id":180,"type":181,"label":182,"file":139,"line":183},"n0","source","$_POST['word_to_filter']",92,{"id":185,"type":186,"label":187,"file":139,"line":183,"wp_function":188},"n1","sink","update_option() [Settings Manipulation]","update_option",[190],{"from":180,"to":185,"sanitized":191},true,"low",{"entryPoint":194,"graph":195,"unsanitizedCount":13,"severity":192},"\u003Cword-filter> (word-filter.php:0)",{"nodes":196,"edges":199},[197,198],{"id":180,"type":181,"label":182,"file":139,"line":183},{"id":185,"type":186,"label":187,"file":139,"line":183,"wp_function":188},[200],{"from":180,"to":185,"sanitized":191},{"summary":202,"deductions":203},"The \"flairbees-post-word-filter-and-replace\" plugin v1.1.0 demonstrates a generally good security posture based on the provided static analysis and vulnerability history. The absence of any detected CVEs, coupled with a clean taint analysis and a strong adherence to prepared statements for SQL queries, indicates a diligent approach to secure coding. The presence of both nonce and capability checks is also a positive sign, suggesting an awareness of basic WordPress security principles.\n\nHowever, a significant concern arises from the output escaping metric. With 69% of outputs properly escaped, this leaves 31% of the plugin's output potentially vulnerable to cross-site scripting (XSS) attacks. While the static analysis shows no immediate critical or high-severity taint flows, an unescaped output is a direct pathway for XSS, which can have serious consequences. The plugin also presents a very small attack surface, which is positive, but the lack of specific details on the 0 AJAX handlers, REST API routes, and shortcodes makes it difficult to definitively rule out potential issues if they were to be introduced in future versions without proper sanitization.\n\nIn conclusion, the plugin is off to a strong start with its security practices. The lack of historical vulnerabilities is commendable. The primary area for improvement and immediate attention is the output escaping. Addressing the unescaped output will significantly bolster the plugin's security and mitigate a clear risk of XSS vulnerabilities. Further development should prioritize maintaining the current level of secure coding practices, particularly in output handling.",[204],{"reason":205,"points":206},"Unescaped output detected (31%)",15,"2026-03-17T00:59:34.294Z",{"wat":209,"direct":216},{"assetPaths":210,"generatorPatterns":212,"scriptPaths":213,"versionParams":214},[211],"\u002Fwp-content\u002Fplugins\u002Fflairbees-post-word-filter-and-replace\u002Fassets\u002Fcss\u002Fstyle.css",[],[],[215],"flairbees-post-word-filter-and-replace\u002Fassets\u002Fcss\u002Fstyle.css?ver=",{"cssClasses":217,"htmlComments":219,"htmlAttributes":220,"restEndpoints":221,"jsGlobals":222,"shortcodeOutput":223},[218],"descriptio",[],[],[],[],[]]