PluginCheck.CodeAnalysis.DiscouragedFunctions.load_plugin_textdomainFound
Discouraged text-domain loading
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 |
|---|---|---|---|---|---|---|---|---|
| #1301 | NGG Smart Image Search | 35 | 298 | 155 | 400 | Output is not escaped | ||
| #1302 | Ni WooCommerce Sales Report | 35 | 236 | 256 | 500 | Text Domain Mismatch | ||
| #1303 | Nooz | 35 | 287 | 108 | 500 | Text Domain Mismatch | ||
| #1304 | Noted! | 35 | 5 | 22 | 1k+ | Non-prefixed global variable | ||
| #1305 | NS Cloner – Site Cloner and Multisite Duplicator | 35 | 29 | 16 | 7k+ | Missing direct file access protection | ||
| #1306 | Plugin Ongkos Kirim JNE Tiki Sicepat Wahana J&T POS for Woocommerce | 35 | 117 | 144 | 2k+ | Output is not escaped | ||
| #1307 | Out of the Block: OpenStreetMap | 35 | 9 | 4 | 700 | Missing direct file access protection | ||
| #1308 | Orderable – Restaurant & Food Ordering System | 35 | 12 | 324 | 5k+ | Non-prefixed global variable | ||
| #1309 | OtFm Gutenberg Spoiler – (or FAQ) collapse block | 35 | 6 | 9 | 600 | trademarked term | ||
| #1310 | Otter Blocks – Gutenberg Blocks, Page Builder for Gutenberg Editor & FSE | 35 | 131 | 41 | 300k+ | Missing direct file access protection | ||
| #1311 | Page Visits Counter – Lite | 35 | 28 | 35 | 5k+ | Output is not escaped | ||
| #1312 | Paybox WooCommerce Payment Gateway | 35 | 165 | 88 | 500 | Non Singular String Literal Domain | ||
| #1313 | Paytm Payment Gateway | 35 | 92 | 104 | 3k+ | Missing Arg Domain | ||
| #1314 | Paytrail for WooCommerce | 35 | 28 | 46 | 3k+ | Non-prefixed global variable | ||
| #1315 | Perfecty Push Notifications | 35 | 204 | 213 | 4k+ | SQL query is not prepared | ||
| #1316 | Phone Orders for WooCommerce | 35 | 1 | 229 | 1k+ | Non-prefixed hook name | ||
| #1317 | PiWeb Delivery & Pickup Date Time for WooCommerce | 35 | 377 | 163 | 500 | Text Domain Mismatch | ||
| #1318 | Pie Calendar – Events Calendar Made Simple | 35 | 83 | 53 | 1k+ | Text Domain Mismatch | ||
| #1319 | Plausible Analytics | 35 | 244 | 61 | 10k+ | Exception output is not escaped | ||
| #1320 | Post List Featured Image | 35 | 112 | 100 | 900 | Output is not escaped | ||
| #1321 | Post Meta Data Manager | 35 | 30 | 112 | 1k+ | Non-prefixed global variable | ||
| #1322 | Post Password Token | 35 | 132 | 38 | 600 | Text Domain Mismatch | ||
| #1323 | Posts Table with Search & Sort | 35 | 143 | 33 | 3k+ | Text Domain Mismatch | ||
| #1324 | Presto Player | 35 | 37 | 77 | 100k+ | Missing Arg Domain | ||
| #1325 | Min Max Step Quantity Limits Manager for WooCommerce | 35 | 67 | 158 | 3k+ | Non-prefixed global variable | ||
| #1326 | Publitio | 35 | 47 | 26 | 400 | curl curl setopt | ||
| #1327 | Push Notifications by LaraPush | 35 | 32 | 76 | 4k+ | Non-prefixed global variable | ||
| #1328 | Random Post on Refresh | 35 | 3 | 8 | 500 | Non-prefixed hook name | ||
| #1329 | Flutterwave WooCommerce | 35 | 7 | 20 | 2k+ | Non-prefixed class | ||
| #1330 | ReactPress – Create React App for WordPress | 35 | 26 | 43 | 3k+ | Request data is not unslashed | ||
| #1331 | Real Time Validation for Gravity Forms | 35 | 185 | 30 | 2k+ | Output is not escaped | ||
| #1332 | Really Simple Google Tag Manager (GTM) | 35 | 115 | 15 | 4k+ | Text Domain Mismatch | ||
| #1333 | Related Posts by Taxonomy | 35 | 131 | 97 | 10k+ | Output is not escaped | ||
| #1334 | Related Posts for WordPress | 35 | 207 | 180 | 10k+ | Output is not escaped | ||
| #1335 | Remove Dashboard Access | 35 | 16 | 23 | 30k+ | wp function not compatible with requires wp | ||
| #1336 | Reseller Store | 35 | 56 | 34 | 1k+ | Output is not escaped | ||
| #1337 | Restrict Elementor Widgets, Columns and Sections | 35 | 18 | 53 | 500 | Non-prefixed function | ||
| #1338 | Robots.txt rewrite | 35 | 56 | 19 | 1k+ | Output is not escaped | ||
| #1339 | Schedule Content Block | 35 | 2 | 3 | 400 | Discouraged text-domain loading | ||
| #1340 | Scripts To Footer | 35 | 13 | 2 | 7k+ | Text Domain Mismatch | ||
| #1341 | Search Console | 35 | 6 | 2 | 2k+ | Missing Arg Domain | ||
| #1342 | SEO Data Transporter | 35 | 7 | 5 | 2k+ | Missing direct file access protection | ||
| #1343 | Shipping Zones by Drawing for WooCommerce | 35 | 278 | 95 | 600 | Text Domain Mismatch | ||
| #1344 | SHOPVOTE | 35 | 64 | 58 | 400 | curl curl setopt | ||
| #1345 | Simple Definition List Blocks | 35 | 11 | 2 | 1k+ | Hidden files included | ||
| #1346 | Simple Header Footer HTML | 35 | 30 | 5 | 3k+ | Output is not escaped | ||
| #1347 | Simple Website Redirect | 35 | 3 | 3 | 6k+ | Discouraged text-domain loading | ||
| #1348 | Slope Widgets | 35 | 5 | 49 | 500 | Non-prefixed global variable | ||
| #1349 | WPZOOM Connect: Social Icons Widget, Share Buttons & Click to Chat | 35 | 28 | 31 | 90k+ | Input is not sanitized | ||
| #1350 | Social Sharing Plugin – Social Warfare | 35 | 17 | 143 | 20k+ | Non-prefixed class |