WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound
Non-prefixed class
The plugin defines a class without a plugin-specific prefix.
Why It Shows Up
WordPress loads many plugins in the same PHP runtime. Plugin Check found a global symbol or hook name that is not clearly namespaced to this plugin.
Why It Matters
Unprefixed globals can collide with WordPress core, themes, or other plugins, causing fatal errors, overwritten values, or handlers running in the wrong context.
How to Fix
- Choose a short, unique prefix or namespace based on the plugin slug or vendor name.
- Rename the class so it cannot collide with code from another plugin.
- For public hooks, document the final hook name and keep it stable after release.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #1951 | Media Sync | 39 | 193 | 7 | 50k+ | Short PHP open tag found | ||
| #1952 | Mega Addons For WPBakery Page Builder | 39 | 1,320 | 154 | 20k+ | Text Domain Mismatch | ||
| #1953 | Zen Feed | 39 | 39 | 22 | 500 | Output is not escaped | ||
| #1954 | Mizan Demo Importer | 39 | 31 | 91 | 1k+ | Missing nonce verification | ||
| #1955 | Social Proof Popups & Real-Time Notifications – Herd Effects | 39 | 5 | 181 | 1k+ | Non-prefixed global variable | ||
| #1956 | SOGO Add Script to Individual Pages Header Footer | 39 | 74 | 40 | 20k+ | Output is not escaped | ||
| #1957 | Pay by paynow.pl | 39 | 51 | 56 | 6k+ | Output is not escaped | ||
| #1958 | Paystack Add-On for Gravity Forms | 39 | 96 | 31 | 400 | Text Domain Mismatch | ||
| #1959 | Posts By Tag | 39 | 151 | 30 | 1k+ | Output is not escaped | ||
| #1960 | PickPlugins Pricing Table | 39 | 3 | 171 | 1k+ | Missing nonce verification | ||
| #1961 | Privilege Menu | 39 | 215 | 49 | 1k+ | Text Domain Mismatch | ||
| #1962 | Product Size Chart for Woocommerce | 39 | 20 | 169 | 600 | Non-prefixed global variable | ||
| #1963 | Radio Buttons for Taxonomies | 39 | 40 | 24 | 20k+ | Output is not escaped | ||
| #1964 | Recent Posts with Excerpts | 39 | 138 | 2 | 700 | Output is not escaped | ||
| #1965 | RioVizual — Table Blocks for Comparison, Pricing and Pros & Cons | 39 | 32 | 75 | 1k+ | Nonce verification recommended | ||
| #1966 | SEO Auto Linker | 39 | 90 | 24 | 1k+ | Text Domain Mismatch | ||
| #1967 | Serial Number for Contact Form 7 | 39 | 105 | 53 | 2k+ | Non Singular String Literal Domain | ||
| #1968 | Shared Files – File Upload & Download Manager | 39 | 5 | 184 | 4k+ | Nonce verification recommended | ||
| #1969 | Shipping Simulator for WooCommerce | 39 | 120 | 39 | 5k+ | Text Domain Mismatch | ||
| #1970 | Simpaisa Wallet (Jazzcash & Easypaisa) Payment Services | 39 | 67 | 74 | 1k+ | Interpolated Variable Text | ||
| #1971 | Simple Membership WP user Import | 39 | 22 | 46 | 4k+ | Request data is not unslashed | ||
| #1972 | Soumettre.fr | 39 | 130 | 26 | 10k+ | Text Domain Mismatch | ||
| #1973 | Stockdio Historical Chart | 39 | 65 | 16 | 900 | Output is not escaped | ||
| #1974 | Sydney Toolbox | 39 | 84 | 62 | 50k+ | Unsafe printing function | ||
| #1975 | ThemeKit For WordPress | 39 | 149 | 49 | 700 | Output is not escaped | ||
| #1976 | Universal Google Adsense and Ads manager | 39 | 70 | 31 | 2k+ | Unsafe printing function | ||
| #1977 | Smart Variation Swatches and Attribute Filters for WooCommerce | 39 | 39 | 50 | 3k+ | Output is not escaped | ||
| #1978 | BeGateway Payment Gateway for WooCommerce | 39 | 57 | 44 | 400 | Unsafe printing function | ||
| #1979 | Combo Offers WooCommerce | 39 | 38 | 89 | 2k+ | Missing nonce verification | ||
| #1980 | Lucky Wheel for WooCommerce – Spin a Sale | 39 | 12 | 153 | 1k+ | Request data is not unslashed | ||
| #1981 | CURCY – Multi Currency for WooCommerce – Smoothly on WooCommerce 9.x | 39 | 7 | 222 | 20k+ | Non-prefixed hook name | ||
| #1982 | Modal Fly Cart & AJAX Add to Cart for WooCommerce | 39 | 83 | 74 | 2k+ | Text Domain Mismatch | ||
| #1983 | WooCommerce Product Dependencies | 39 | 44 | 60 | 3k+ | Missing nonce verification | ||
| #1984 | Aparat for WordPress | 39 | 59 | 14 | 3k+ | Output is not escaped | ||
| #1985 | WP Attachments | 39 | 49 | 44 | 3k+ | Output is not escaped | ||
| #1986 | WPEPP – Essential Security, Password Protect & Login Page Customizer | 39 | 34 | 29 | 3k+ | Unsupported Identifier Placeholder | ||
| #1987 | WP Gmail SMTP | 39 | 99 | 50 | 1k+ | Text Domain Mismatch | ||
| #1988 | WP Most Popular | 39 | 50 | 35 | 2k+ | Output is not escaped | ||
| #1989 | WP Multibyte Patch | 39 | 24 | 55 | 1m+ | Input is not sanitized | ||
| #1990 | WP Realtime Sitemap | 39 | 46 | 41 | 10k+ | Output is not escaped | ||
| #1991 | WP SendGrid SMTP | 39 | 99 | 50 | 1k+ | Text Domain Mismatch | ||
| #1992 | WP Server Health Stats | 39 | 66 | 31 | 10k+ | Output is not escaped | ||
| #1993 | Yandex Metrica | 39 | 92 | 46 | 20k+ | Output is not escaped | ||
| #1994 | YITH Custom Login | 39 | 86 | 33 | 6k+ | Output is not escaped | ||
| #1995 | Z | 39 | 84 | 69 | 500 | Output is not escaped | ||
| #1996 | 404 Notifier | 40 | 39 | 41 | 700 | Output is not escaped | ||
| #1997 | Address Autocomplete Anything | 40 | 94 | 32 | 900 | Unsafe printing function | ||
| #1998 | Advanced Custom Fields: Font Awesome Field | 40 | 332 | 70 | 90k+ | Text Domain Mismatch | ||
| #1999 | AgreeMe Checkboxes For WooCommerce | 40 | 88 | 44 | 600 | Text Domain Mismatch | ||
| #2000 | AJAX Thumbnail Rebuild | 40 | 38 | 14 | 30k+ | Unsafe printing function |