WordPress.WP.I18n.MixedOrderedPlaceholdersText
Mixed Ordered Placeholders Text
A translation or text-domain pattern does not match WordPress internationalization expectations.
Why It Shows Up
Plugin Check found missing text domains, mismatched domains, missing translator comments, variable-only strings, placeholder issues, or deprecated translation loading patterns.
Why It Matters
Translation issues make the plugin harder to localize and can break strings for non-English WordPress users.
How to Fix
- Use the plugin slug as the text domain unless the plugin intentionally declares a different one.
- Keep translatable strings literal and move variables into placeholders.
- Add translator comments before strings with placeholders or ambiguous context.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #1 | RestroPress – Online Food Ordering System | 17 | 524 | 3,155 | 1k+ | Non-prefixed global variable | ||
| #2 | wpForo Forum | 17 | 4,048 | 2,922 | 20k+ | Unsafe printing function | ||
| #3 | Brizy – Page Builder | 20 | 586 | 726 | 70k+ | Output is not escaped | ||
| #4 | Leaky Paywall | 20 | 322 | 789 | 600 | Nonce verification recommended | ||
| #5 | Kadence Security – Password, Two Factor Authentication, and Brute Force Protection | 21 | 1,060 | 957 | 700k+ | Missing Translators Comment | ||
| #6 | TotalPoll for Polls and Contests | 21 | 1,366 | 155 | 1k+ | Text Domain Mismatch | ||
| #7 | WooCommerce | 21 | 1,343 | 6,212 | 7m+ | Non-prefixed global variable | ||
| #8 | Borderless – Addons and Templates for Elementor | 22 | 438 | 1,388 | 5k+ | Non-prefixed global variable | ||
| #9 | GeoDirectory – WP Business Directory Plugin and Classified Listings Directory | 22 | 4,465 | 3,976 | 10k+ | Output is not escaped | ||
| #10 | MailOptin – Popup, Optin Forms & Email Newsletters for Mailchimp, HubSpot, AWeber Etc. | 22 | 2,625 | 2,458 | 10k+ | Output is not escaped | ||
| #11 | BA Book Everything | 23 | 1,184 | 1,086 | 10k+ | Output is not escaped | ||
| #12 | Builderall for WordPress | 24 | 4,778 | 1,307 | 1k+ | Text Domain Mismatch | ||
| #13 | Church Admin | 24 | 1,556 | 4,200 | 900 | Direct Query | ||
| #14 | Event Tickets and Registration | 24 | 3,407 | 4,217 | 90k+ | Non-prefixed global variable | ||
| #15 | Product Catalog Simple | 24 | 1,555 | 1,982 | 1k+ | Output is not escaped | ||
| #16 | WpStream – Live Streaming, Video on Demand, Pay Per View | 24 | 1,725 | 742 | 3k+ | Text Domain Mismatch | ||
| #17 | Coupon Creator | 25 | 698 | 412 | 1k+ | Output is not escaped | ||
| #18 | Payment Plugins for Stripe WooCommerce | 25 | 349 | 779 | 100k+ | Non-prefixed global variable | ||
| #19 | Cyrlitera – Transliteration of Links and File Names | 26 | 452 | 202 | 40k+ | Output is not escaped | ||
| #20 | Gravity Forms Directory | 27 | 202 | 457 | 600 | Non-prefixed global variable | ||
| #21 | Speed Booster Pack ⚡ PageSpeed Optimization Suite | 27 | 108 | 187 | 9k+ | Missing Translators Comment | ||
| #22 | Jetpack VaultPress | 28 | 71 | 362 | 10k+ | Missing nonce verification | ||
| #23 | AppPresser – Mobile App Framework | 29 | 262 | 214 | 1k+ | Text Domain Mismatch | ||
| #24 | Email Templates Customizer and Designer for WordPress and WooCommerce | 30 | 250 | 349 | 20k+ | Non-prefixed global variable | ||
| #25 | Hyyan WooCommerce Polylang Integration | 33 | 141 | 220 | 8k+ | Nonce verification recommended | ||
| #26 | IP2Location Country Blocker | 34 | 295 | 88 | 30k+ | Output is not escaped | ||
| #27 | Kadence WooCommerce Email Designer | 36 | 118 | 229 | 100k+ | Non-prefixed global variable | ||
| #28 | Language Switcher | 37 | 81 | 105 | 1k+ | Missing Translators Comment | ||
| #29 | MailerSend – Official SMTP Integration | 40 | 39 | 25 | 2k+ | Unsafe printing function | ||
| #30 | Post Grid | 45 | 32 | 208 | 30k+ | Non-prefixed global variable | ||
| #31 | Clio Grow Form | 91 | 179 | 19 | 1k+ | Text Domain Mismatch | ||
| #32 | Pantheon Advanced Page Cache | 91 | 10 | 6 | 10k+ | Request data is not unslashed |