WordPress.WP.I18n.UnorderedPlaceholdersText
Unordered 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 | Updated | Top Issue |
|---|---|---|---|---|---|---|---|
| #801 | Post Date Randomizer | 45 | 42 | 6 | 9k+ | Unsafe printing function | |
| #802 | Gravity Forms Constant Contact | 46 | 36 | 27 | 3k+ | Non-prefixed class | |
| #803 | Gateway AqayePardakht for Woocommerce | 47 | 72 | 23 | 4k+ | Text Domain Mismatch | |
| #804 | GetAutoSEO AI Tool | 47 | 10 | 244 | 1k+ | Direct Query | |
| #805 | Restore PayPal Standard for WooCommerce | 47 | 19 | 53 | 3k+ | Nonce verification recommended | |
| #806 | Taxonomy Switcher | 47 | 23 | 36 | 2k+ | Nonce verification recommended | |
| #807 | Add LinkedIn Insight Tag for LinkedIn Ads | 48 | 129 | 23 | 5k+ | Non Singular String Literal Domain | |
| #808 | Schedule Post Changes With PublishPress Future: Unpublish, Delete, Change Status, Trash, Change Categories | 48 | 63 | 273 | 100k+ | Non-prefixed global variable | |
| #809 | WP First Letter Avatar | 48 | 40 | 7 | 2k+ | Output is not escaped | |
| #810 | Secondary Product Image for WooCommerce | 49 | 25 | 29 | 2k+ | Output is not escaped | |
| #811 | SKT Themes Demo Import | 49 | 218 | 104 | 4k+ | Text Domain Mismatch | |
| #812 | HT Slider For Elementor | 50 | 884 | 40 | 20k+ | Text Domain Mismatch | |
| #813 | Product Open Pricing (Name Your Price) for WooCommerce | 50 | 105 | 37 | 6k+ | Text Domain Mismatch | |
| #814 | Theme Demo Import | 50 | 101 | 95 | 5k+ | Non-prefixed hook name | |
| #815 | Aspexi Social Media Slider | 51 | 177 | 15 | 2k+ | Text Domain Mismatch | |
| #816 | YayMail – WooCommerce Email Customizer | 51 | 163 | 788 | 50k+ | Non-prefixed global variable | |
| #817 | Affiliate Area Shortcodes by AffiliateWP | 52 | 56 | 16 | 2k+ | Text Domain Mismatch | |
| #818 | Debug This | 52 | 43 | 32 | 2k+ | Missing Translators Comment | |
| #819 | Formstack Online Forms | 52 | 39 | 20 | 1k+ | Output is not escaped | |
| #820 | Post Notification by Email | 52 | 36 | 13 | 2k+ | Output is not escaped | |
| #821 | SKU Generator for WooCommerce | 52 | 29 | 12 | 2k+ | Output is not escaped | |
| #822 | Starbox – the Author Box for Humans | 52 | 144 | 19 | 10k+ | Non Singular String Literal Domain | |
| #823 | Multiple Post Thumbnails | 53 | 25 | 18 | 20k+ | Output is not escaped | |
| #824 | AffiliateWP – Order Details For Affiliates | 54 | 62 | 27 | 2k+ | Output is not escaped | |
| #825 | Juiz Lang Attribute | 54 | 26 | 27 | 1k+ | Text Domain Mismatch | |
| #826 | Quick and Easy Testimonials | 54 | 63 | 32 | 3k+ | Non Singular String Literal Domain | |
| #827 | Refer A Friend for WooCommerce by WPGens | 55 | 77 | 21 | 1k+ | Text Domain Mismatch | |
| #828 | Grids: Layout builder for WordPress | 56 | 24 | 27 | 2k+ | Missing direct file access protection | |
| #829 | Require Featured Image | 56 | 20 | 6 | 3k+ | Output is not escaped | |
| #830 | TextBuilder | 56 | 20 | 34 | 4k+ | Missing Arg Domain | |
| #831 | WP Old Post Date Remover | 57 | 25 | 7 | 2k+ | Unsafe printing function | |
| #832 | WP Table Builder – Drag & Drop Table Builder | 57 | 55 | 39 | 50k+ | Not Allowed | |
| #833 | Houzez WooCommerce Addon | 58 | 22 | 21 | 4k+ | Missing Translators Comment | |
| #834 | GetPaid Stripe Payments | 61 | 206 | 44 | 2k+ | Text Domain Mismatch | |
| #835 | Hotjar | 61 | 16 | 4 | 70k+ | Output is not escaped | |
| #836 | PayPing Gateway For Woocommerce | 63 | 11 | 40 | 1k+ | Non-prefixed hook name | |
| #837 | Admin CSS MU | 64 | 30 | 582 | 10k+ | Non-prefixed global variable | |
| #838 | Estonian Shipping Methods for WooCommerce | 64 | 97 | 16 | 1k+ | Text Domain Mismatch | |
| #839 | Integration for Elementor forms – Sendinblue | 65 | 94 | 56 | 7k+ | Text Domain Mismatch | |
| #840 | Easy PHP Settings | 66 | 34 | 48 | 2k+ | Missing Translators Comment | |
| #841 | Really Simple CSV Importer | 66 | 38 | 8 | 40k+ | Output is not escaped | |
| #842 | Visual Link Preview | 66 | 47 | 2 | 10k+ | Output is not escaped | |
| #843 | WooCommerce Accepted Payment Methods | 66 | 28 | 4 | 2k+ | badly named files | |
| #844 | WP Post Branches | 67 | 16 | 12 | 4k+ | Nonce verification recommended | |
| #845 | Desert Companion | 68 | 410 | 830 | 20k+ | Non-prefixed global variable | |
| #846 | News Magazine X Core | 68 | 63 | 30 | 5k+ | Missing Translators Comment | |
| #847 | Title Toggle for Storefront Theme | 68 | 16 | 9 | 3k+ | Output is not escaped | |
| #848 | Vibe AI – MCP Server for WordPress. Connect Claude, ChatGPT & Cursor | 68 | 10 | 24 | 2k+ | Non-prefixed global variable | |
| #849 | WP and Divi Icons | 68 | 201 | 56 | 2k+ | wp function not compatible with requires wp | |
| #850 | WP Smart Preloader | 68 | 27 | 10 | 5k+ | Output is not escaped |