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 |
|---|---|---|---|---|---|---|---|---|
| #2451 | Simple HTTPS | 67 | 17 | 13 | 400 | Output is not escaped | ||
| #2452 | Cart links for WooCommerce | 67 | 13 | 16 | 500 | Text Domain Mismatch | ||
| #2453 | Webyx for Elementor – Fullpage Fullscreen Scrolling Websites | 67 | 684 | 10 | 500 | Non Singular String Literal Domain | ||
| #2454 | WP Image Zoom | 67 | 30 | 46 | 10k+ | Non-prefixed global variable | ||
| #2455 | WP Notification Bars | 67 | 13 | 32 | 10k+ | Request data is not unslashed | ||
| #2456 | WP Post Branches | 67 | 16 | 12 | 4k+ | Nonce verification recommended | ||
| #2457 | wp-Typography | 67 | 91 | 33 | 20k+ | Missing direct file access protection | ||
| #2458 | ACF: Yandex Maps Field | 68 | 73 | 10 | 800 | Text Domain Mismatch | ||
| #2459 | Book Previewer for Woocommerce | 68 | 23 | 40 | 1k+ | Non-prefixed global variable | ||
| #2460 | Booter – Bots & Crawlers Manager | 68 | 81 | 7k+ | Non-prefixed global variable | |||
| #2461 | Collapsing Categories | 68 | 29 | 8 | 4k+ | Missing direct file access protection | ||
| #2462 | Default Attributes for WooCommerce | 68 | 22 | 18 | 400 | Non-prefixed hook name | ||
| #2463 | Faire for WooCommerce | 68 | 4 | 86 | 800 | Direct Query | ||
| #2464 | WCAG 2.0 form fields for Gravity Forms | 68 | 11 | 13 | 5k+ | Output is not escaped | ||
| #2465 | Guestplan Booking Widget | 68 | 43 | 6 | 1k+ | Text Domain Mismatch | ||
| #2466 | Mailster Contact Form 7 | 68 | 35 | 20 | 1k+ | Text Domain Mismatch | ||
| #2467 | One Stop Shop for WooCommerce | 68 | 23 | 83 | 10k+ | Input is not sanitized | ||
| #2468 | PagBank for WooCommerce | 68 | 8 | 36 | 3k+ | Input is not sanitized | ||
| #2469 | Russian Post and EMS for WooCommerce | 68 | 16 | 47 | 1k+ | Non-prefixed global variable | ||
| #2470 | Series | 68 | 55 | 6 | 2k+ | Text Domain Mismatch | ||
| #2471 | SKT Page Builder | 68 | 15 | 49 | 2k+ | Missing nonce verification | ||
| #2472 | Smartarget – Chat Buttons & Engagement Apps | 68 | 31 | 11 | 1k+ | Non Singular String Literal Domain | ||
| #2473 | Sortable Word Count Reloaded | 68 | 18 | 6 | 2k+ | Output is not escaped | ||
| #2474 | Title Toggle for Storefront Theme | 68 | 16 | 9 | 3k+ | Output is not escaped | ||
| #2475 | Product Category Slider for WooCommerce | 68 | 21 | 104 | 800 | Non-prefixed hook name | ||
| #2476 | WP Favicon | 68 | 25 | 9 | 500 | Non Singular String Literal Domain | ||
| #2477 | WP User Avatars | 68 | 5 | 20 | 20k+ | Input is not sanitized | ||
| #2478 | YaySwatches – Variation Swatches for WooCommerce | 68 | 281 | 14 | 1k+ | Text Domain Mismatch | ||
| #2479 | Age Gate | 69 | 61 | 139 | 40k+ | Missing direct file access protection | ||
| #2480 | WP Wand – Unlimited Content Generation using AI – for OpenAI, Claude, Openrouter and Deepseek | 69 | 452 | 25 | 1k+ | Text Domain Mismatch | ||
| #2481 | Automatic Domain Changer | 69 | 37 | 14 | 10k+ | Text Domain Mismatch | ||
| #2482 | Black Bar | 69 | 78 | 39 | 500 | Short PHP open tag found | ||
| #2483 | CDN Enabler | 69 | 14 | 7 | 10k+ | Output is not escaped | ||
| #2484 | Chatway Live Chat – AI Chatbot, Customer Support, FAQ & Helpdesk Customer Service & Chat Buttons | 69 | 22 | 24 | 30k+ | Text Domain Mismatch | ||
| #2485 | Contact Form 7: Accessible Defaults | 69 | 3 | 28 | 5k+ | Nonce verification recommended | ||
| #2486 | Disable Users | 69 | 11 | 9 | 2k+ | Text Domain Mismatch | ||
| #2487 | Easy Auto Reload – Auto Refresh | 69 | 37 | 12 | 1k+ | Text Domain Mismatch | ||
| #2488 | ELEX WooCommerce Bulk Edit Products, Prices & Attributes (Basic) | 69 | 511 | 51 | 4k+ | Text Domain Mismatch | ||
| #2489 | ELEX WooCommerce Discount Per Payment Method | 69 | 60 | 39 | 1k+ | Text Domain Mismatch | ||
| #2490 | Mailster WordPress Newsletter Plugin | 69 | 14 | 11 | 8k+ | Output is not escaped | ||
| #2491 | Media Slider for Photos Images Videos | 69 | 10 | 23 | 2k+ | Missing Version | ||
| #2492 | PDF.js Viewer | 69 | 14 | 38 | 20k+ | Non-prefixed global variable | ||
| #2493 | PrivacyBee – Datenschutz im Autopilot | 69 | 19 | 27 | 600 | Non-prefixed global variable | ||
| #2494 | Rife Extensions & Templates for Elementor | 69 | 22 | 7 | 20k+ | Output is not escaped | ||
| #2495 | Scroll Down Arrow | 69 | 30 | 30 | 800 | Missing Arg Domain | ||
| #2496 | Simple Login Lockdown | 69 | 13 | 6 | 4k+ | Output is not escaped | ||
| #2497 | Sticky Header Effects for Elementor | 69 | 354 | 71 | 300k+ | Text Domain Mismatch | ||
| #2498 | Add Widget After Content | 70 | 6 | 11 | 7k+ | Setting is missing a sanitization callback | ||
| #2499 | In-feed ads for Google AdSense | 70 | 20 | 20 | 6k+ | Non-prefixed global variable | ||
| #2500 | Animentor – Lottie & Bodymovin for Elementor | 70 | 18 | 8 | 4k+ | Output is not escaped |