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 |
|---|---|---|---|---|---|---|---|---|
| #1251 | Events Calendar by FooEvents | 35 | 56 | 59 | 4k+ | Non-prefixed global variable | ||
| #1252 | GD bbPress Attachments | 35 | 2 | 10 | 6k+ | wp redirect wp redirect | ||
| #1253 | Genesis Simple Sidebars | 35 | 9 | 51 | 10k+ | Nonce verification recommended | ||
| #1254 | Get a Newsletter | 35 | 138 | 144 | 400 | Output is not escaped | ||
| #1255 | Give – Divi Donation Modules | 35 | 286 | 12 | 600 | Text Domain Mismatch | ||
| #1256 | Glossary | 35 | 169 | 93 | 2k+ | Non Singular String Literal Domain | ||
| #1257 | Google Analytics Opt-Out | 35 | 34 | 7 | 5k+ | Output is not escaped | ||
| #1258 | Reviews Block for Google | 35 | 244 | 35 | 1k+ | Missing Arg Domain | ||
| #1259 | Gum Addon for Elementor | 35 | 660 | 72 | 50k+ | Text Domain Mismatch | ||
| #1260 | Social Comments by Heateor | 35 | 285 | 35 | 700 | Unsafe printing function | ||
| #1261 | Highlighting Code Block | 35 | 6 | 2 | 10k+ | Hidden files included | ||
| #1262 | HivePress – Business Directory, Listings & Classified Ads Plugin | 35 | 38 | 180 | 10k+ | Direct Query | ||
| #1263 | HookMeUp for WooCommerce | 35 | 59 | 29 | 10k+ | Output is not escaped | ||
| #1264 | HT Form Widget for Elementor and WPForms | 35 | 8 | 9 | 2k+ | Output is not escaped | ||
| #1265 | Iframely – WP media embeds, cards and blocks | 35 | 136 | 43 | 2k+ | Unsafe printing function | ||
| #1266 | PDF Compressor & Watermark – iLovePDF | 35 | 216 | 5 | 600 | Text Domain Mismatch | ||
| #1267 | ImageMagick Engine | 35 | 63 | 29 | 60k+ | Unsafe printing function | ||
| #1268 | Imsanity | 35 | 32 | 29 | 200k+ | Direct Query | ||
| #1269 | InPost PL | 35 | 2 | 925 | 10k+ | Non-prefixed global variable | ||
| #1270 | Woody Code Snippets – Insert PHP, CSS, JS, and Header/Footer Scripts | 35 | 64 | 91 | 60k+ | Output is not escaped | ||
| #1271 | Social Feed Gallery | 35 | 104 | 52 | 80k+ | Text Domain Mismatch | ||
| #1272 | IntenseDebate Comments | 35 | 203 | 114 | 500 | Output is not escaped | ||
| #1273 | ICIT Weather Widget | 35 | 358 | 8 | 400 | Output is not escaped | ||
| #1274 | JS Categories List Widget | 35 | 37 | 18 | 1k+ | Non Singular String Literal Domain | ||
| #1275 | JWT Auth – WordPress JSON Web Token Authentication | 35 | 14 | 18 | 6k+ | Output is not escaped | ||
| #1276 | Kaya QR Code Generator | 35 | 193 | 40 | 20k+ | Non Singular String Literal Domain | ||
| #1277 | KBoard 위젯 – 워드프레스 게시판 | 35 | 53 | 32 | 3k+ | Output is not escaped | ||
| #1278 | Kiyoh customer review | 35 | 173 | 68 | 500 | Output is not escaped | ||
| #1279 | Kustom Checkout for WooCommerce | 35 | 101 | 505 | 10k+ | Dynamic hook name | ||
| #1280 | Lead Form Builder & Contact Form | 35 | 400 | 345 | 9k+ | Output is not escaped | ||
| #1281 | Web3Press – Migrating to 3ook.com Decentralized Bookstore | 35 | 7 | 49 | 400 | Non-prefixed constant | ||
| #1282 | Listamester | 35 | 17 | 16 | 600 | Output is not escaped | ||
| #1283 | Log in with Google | 35 | 5 | 17 | 6k+ | Non-prefixed global variable | ||
| #1284 | Magic Login – Passwordless Authentication for WordPress – Login Without Password | 35 | 23 | 53 | 3k+ | Missing nonce verification | ||
| #1285 | Magical Addons For Elementor ( Header Footer Builder, Free Elementor Widgets, Elementor Templates Library ) | 35 | 273 | 127 | 5k+ | Output is not escaped | ||
| #1286 | MainWP Child Reports | 35 | 49 | 116 | 100k+ | Non-prefixed hook name | ||
| #1287 | Marquee image crawler | 35 | 168 | 136 | 700 | Non-prefixed global variable | ||
| #1288 | Mechanic Visitor Counter | 35 | 240 | 66 | 7k+ | Output is not escaped | ||
| #1289 | Media Credit | 35 | 28 | 35 | 1k+ | Non-prefixed global variable | ||
| #1290 | Media Library Downloader | 35 | 21 | 16 | 4k+ | Output is not escaped | ||
| #1291 | Restaurant Menu – Food Ordering System – Table Reservation | 35 | 317 | 186 | 8k+ | Unsafe printing function | ||
| #1292 | Mini Ajax Cart for WooCommerce | 35 | 297 | 240 | 900 | Text Domain Mismatch | ||
| #1293 | Mini Cart for WooCommerce – Add a Stylish Sliding Cart | 35 | 42 | 160 | 600 | Non-prefixed global variable | ||
| #1294 | MONEI Payments for WooCommerce | 35 | 15 | 65 | 500 | Non-prefixed hook name | ||
| #1295 | More Widgets | 35 | 55 | 15 | 1k+ | Output is not escaped | ||
| #1296 | mosparo Integration | 35 | 114 | 301 | 900 | Missing nonce verification | ||
| #1297 | Moyasar | 35 | 506 | 128 | 700 | Text Domain Mismatch | ||
| #1298 | Hide from Search | 35 | 5 | 8 | 3k+ | Missing direct file access protection | ||
| #1299 | My Eyes Are Up Here | 35 | 7 | 12 | 2k+ | Missing nonce verification | ||
| #1300 | Never Let Me Go | 35 | 34 | 47 | 400 | Non-prefixed global variable |