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 |
|---|---|---|---|---|---|---|---|---|
| #1651 | Page Links To | 38 | 31 | 40 | 100k+ | Unsafe printing function | ||
| #1652 | YAPE A1 Tiendas | 38 | 24 | 43 | 900 | Missing nonce verification | ||
| #1653 | Podlove Subscribe button | 38 | 148 | 45 | 2k+ | Output is not escaped | ||
| #1654 | Popular Widget | 38 | 61 | 30 | 700 | Unsafe printing function | ||
| #1655 | Quick Download Button | 38 | 34 | 123 | 2k+ | Non-prefixed global variable | ||
| #1656 | Remove WordPress Overhead | 38 | 64 | 47 | 1k+ | Text Domain Mismatch | ||
| #1657 | Responsive Mailform ( Plugin Version ) – easy, responsive, contact, mailform | 38 | 120 | 107 | 500 | Output is not escaped | ||
| #1658 | Invoice123 | 38 | 139 | 88 | 400 | Text Domain Mismatch | ||
| #1659 | SCSS WP Editor | 38 | 111 | 40 | 900 | Exception output is not escaped | ||
| #1660 | LinkBoss – Semantic AI Internal Linking | 38 | 28 | 57 | 2k+ | Missing Arg Domain | ||
| #1661 | ShiftNav – Responsive Mobile Menu | 38 | 249 | 35 | 10k+ | Text Domain Mismatch | ||
| #1662 | Simple Expires | 38 | 32 | 39 | 500 | Non Singular String Literal Domain | ||
| #1663 | Simple JWT Login – Allows you to use JWT on REST endpoints. | 38 | 712 | 95 | 4k+ | Output is not escaped | ||
| #1664 | Simple Keyword to Link | 38 | 90 | 49 | 3k+ | Non Singular String Literal Domain | ||
| #1665 | Social Icons | 38 | 72 | 83 | 10k+ | Output is not escaped | ||
| #1666 | SOGO Accessibility | 38 | 147 | 40 | 5k+ | Non Singular String Literal Domain | ||
| #1667 | Sticky Header Effects for Elementor | 38 | 243 | 71 | 300k+ | Text Domain Mismatch | ||
| #1668 | Tag Manager – Header, Body And Footer | 38 | 97 | 319 | 20k+ | Non-prefixed global variable | ||
| #1669 | Product Compare for WooCommerce | 38 | 55 | 191 | 3k+ | Non-prefixed global variable | ||
| #1670 | Theme Blvd Widget Pack | 38 | 240 | 17 | 2k+ | Output is not escaped | ||
| #1671 | Trackserver | 38 | 17 | 356 | 400 | Input is not sanitized | ||
| #1672 | Trash Duplicate and 301 Redirect | 38 | 13 | 103 | 1k+ | Nonce verification recommended | ||
| #1673 | Sidebar Login Widget | 38 | 90 | 16 | 700 | Output is not escaped | ||
| #1674 | Termly – GDPR/CCPA Cookie Consent Banner | 38 | 54 | 92 | 80k+ | Non-prefixed global variable | ||
| #1675 | Ultimate Member Widgets for Elementor – Login Form, Register Form & User Directory | 38 | 17 | 110 | 400 | Non-prefixed namespace | ||
| #1676 | User Specific Content | 38 | 143 | 19 | 1k+ | Text Domain Mismatch | ||
| #1677 | Ninja Forms Views – Display & Edit Ninja Forms Submissions on your site frontend | 38 | 84 | 49 | 1k+ | Output is not escaped | ||
| #1678 | W2S – Migrate WooCommerce to Shopify | 38 | 33 | 132 | 1k+ | Non-prefixed global variable | ||
| #1679 | Chatbox Manager | 38 | 855 | 78 | 400 | Output is not escaped | ||
| #1680 | WC-AC Hook | 38 | 44 | 72 | 1k+ | Missing nonce verification | ||
| #1681 | WDV About Me Widget | 38 | 150 | 8 | 900 | Output is not escaped | ||
| #1682 | White Label – WordPress Custom Admin, Custom Login Page, and Custom Dashboard | 38 | 205 | 31 | 10k+ | Output is not escaped | ||
| #1683 | WholesaleX – B2B & Wholesale Plugin for WooCommerce with Wholesale Prices | 38 | 33 | 181 | 2k+ | Non-prefixed global variable | ||
| #1684 | WishSuite – Wishlist for WooCommerce | 38 | 76 | 133 | 1k+ | Output is not escaped | ||
| #1685 | Photo Reviews for WooCommerce | 38 | 26 | 222 | 10k+ | Request data is not unslashed | ||
| #1686 | WooSwipe WooCommerce Gallery | 38 | 88 | 82 | 3k+ | Non-prefixed global variable | ||
| #1687 | WP Maintenance Mode & Site Under Construction | 38 | 72 | 57 | 3k+ | Output is not escaped | ||
| #1688 | WP Terms Popup – Terms and Conditions and Privacy Policy WordPress Popups | 38 | 299 | 58 | 3k+ | Non Singular String Literal Domain | ||
| #1689 | Accounting for WooCommerce | 39 | 87 | 115 | 500 | Unsafe printing function | ||
| #1690 | Ad Invalid Click Protector (AICP) | 39 | 78 | 57 | 10k+ | Text Domain Mismatch | ||
| #1691 | Add-on Gravity Forms – MailPoet 3 | 39 | 31 | 33 | 600 | Output is not escaped | ||
| #1692 | Additional Order Filters for WooCommerce | 39 | 79 | 255 | 2k+ | Nonce verification recommended | ||
| #1693 | AffiliatePages – Pros & Cons, Notice, and CTA Blocks for Affiliates | 39 | 91 | 53 | 2k+ | Output is not escaped | ||
| #1694 | AffiliateWP – Affiliate Area Tabs | 39 | 86 | 26 | 3k+ | Output is not escaped | ||
| #1695 | Accessibility by AllAccessible | 39 | 200 | 82 | 2k+ | Unsafe printing function | ||
| #1696 | Animate It! | 39 | 137 | 16 | 20k+ | Text Domain Mismatch | ||
| #1697 | Anything Order by Terms | 39 | 48 | 93 | 1k+ | Direct Query | ||
| #1698 | Timeline – Vertical and Horizontal Timeline Layouts | 39 | 500 | 43 | 2k+ | Output is not escaped | ||
| #1699 | Benchmark Email Lite | 39 | 86 | 23 | 1k+ | Output is not escaped | ||
| #1700 | Better Random Redirect | 39 | 88 | 40 | 700 | Text Domain Mismatch |