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 |
|---|---|---|---|---|---|---|---|---|
| #2451 | Awesome Contact Form7 for Elementor | 67 | 20 | 30 | 7k+ | Non-prefixed global variable | ||
| #2452 | Breadcrumbs Divi Module | 67 | 44 | 38 | 10k+ | Text Domain Mismatch | ||
| #2453 | Flexible Product Fields (WooCommerce Product Addons) – WooCommerce Product Page Editor | 67 | 57 | 98 | 10k+ | Non-prefixed global variable | ||
| #2454 | WordPress.com Editing Toolkit | 67 | 52 | 90 | 1k+ | Missing direct file access protection | ||
| #2455 | Mailster Gmail Integration | 67 | 15 | 13 | 1k+ | Missing Translators Comment | ||
| #2456 | Mosaic Gallery – Advanced Gallery | 67 | 45 | 79 | 3k+ | Non-prefixed global variable | ||
| #2457 | Notely | 67 | 6 | 17 | 600 | Non-prefixed function | ||
| #2458 | Product Variations Swatches for WooCommerce | 67 | 8 | 136 | 10k+ | Non-prefixed global variable | ||
| #2459 | WebToffee WooCommerce Product Feeds – Google Shopping, Pinterest, TikTok Ads, & More | 67 | 178 | 2,899 | 2k+ | Non-prefixed hook name | ||
| #2460 | WP Image Zoom | 67 | 30 | 46 | 10k+ | Non-prefixed global variable | ||
| #2461 | WP Logout Redirect | 67 | 20 | 5 | 400 | Unsafe printing function | ||
| #2462 | WPC Show Single Variations for WooCommerce | 67 | 5 | 31 | 1k+ | Nonce verification recommended | ||
| #2463 | Autoclear Autoptimize Cache | 68 | 16 | 3 | 8k+ | Output is not escaped | ||
| #2464 | Book Previewer for Woocommerce | 68 | 23 | 40 | 1k+ | Non-prefixed global variable | ||
| #2465 | Category Featured Images | 68 | 5 | 12 | 600 | Input is not sanitized | ||
| #2466 | Comment Approved | 68 | 6 | 14 | 500 | Input is not sanitized | ||
| #2467 | Export media with selected content (by DKZR) | 68 | 10 | 14 | 40k+ | Direct Query | ||
| #2468 | Free Assets Library – Openverse/Pixabay 600+ Million Images | 68 | 44 | 36 | 4k+ | Text Domain Mismatch | ||
| #2469 | ミエルカヒートマップ タグマネージャー | 68 | 9 | 11 | 800 | Input is not validated | ||
| #2470 | POS Entegratör – Gurmehub Ödeme Eklentisi | 68 | 1,321 | 69 | 1k+ | Text Domain Mismatch | ||
| #2471 | Postepay Gateway per Woocommerce | 68 | 36 | 4 | 1k+ | Text Domain Mismatch | ||
| #2472 | Protection Against DDoS | 68 | 22 | 5 | 3k+ | Output is not escaped | ||
| #2473 | Reusable Gutenberg Blocks Widget | 68 | 24 | 9 | 500 | Output is not escaped | ||
| #2474 | Export and Import Users and Customers | 68 | 223 | 662 | 60k+ | Non-prefixed global variable | ||
| #2475 | Video Tab For WooCommerce | 68 | 7 | 13 | 600 | Missing nonce verification | ||
| #2476 | Product Category Slider for WooCommerce | 68 | 21 | 104 | 800 | Non-prefixed hook name | ||
| #2477 | WP and Divi Icons | 68 | 201 | 56 | 2k+ | wp function not compatible with requires wp | ||
| #2478 | WP Smart Preloader | 68 | 27 | 10 | 5k+ | Output is not escaped | ||
| #2479 | Solid Mail – SMTP email and logging made by SolidWP | 68 | 16 | 17 | 60k+ | Database parameter is not escaped | ||
| #2480 | WP Theme Changelogs | 68 | 13 | 18 | 900 | Nonce verification recommended | ||
| #2481 | Age Gate | 69 | 61 | 139 | 40k+ | Missing direct file access protection | ||
| #2482 | WP Wand – Unlimited Content Generation using AI – for OpenAI, Claude, Openrouter and Deepseek | 69 | 452 | 25 | 1k+ | Text Domain Mismatch | ||
| #2483 | Custom Archive Titles | 69 | 39 | 4 | 2k+ | Output is not escaped | ||
| #2484 | Debug Bar Rewrite Rules | 69 | 29 | 38 | 800 | Non-prefixed global variable | ||
| #2485 | ELEX WooCommerce Bulk Edit Products, Prices & Attributes (Basic) | 69 | 511 | 51 | 4k+ | Text Domain Mismatch | ||
| #2486 | Gist All-In-One Marketing – Live Chat, Popups, Email | 69 | 24 | 11 | 500 | Output is not escaped | ||
| #2487 | Search & Filter | 69 | 21 | 28 | 50k+ | Input is not sanitized | ||
| #2488 | Simple Mathjax | 69 | 29 | 3 | 4k+ | Short PHP open tag found | ||
| #2489 | SlingBlocks – Gutenberg Blocks by FunnelKit (Formerly WooFunnels) | 69 | 17 | 952 | 7k+ | Non-prefixed global variable | ||
| #2490 | Sticky Header Effects for Elementor | 69 | 354 | 71 | 300k+ | Text Domain Mismatch | ||
| #2491 | TJ Custom CSS | 69 | 18 | 10 | 8k+ | Output is not escaped | ||
| #2492 | WC Variations Radio Buttons | 69 | 12 | 21 | 3k+ | Non-prefixed global variable | ||
| #2493 | Export WordPress Menus | 69 | 94 | 22 | 1k+ | wp function not compatible with requires wp | ||
| #2494 | WP Mapa Politico España | 69 | 32 | 12 | 400 | Output is not escaped | ||
| #2495 | WP referrer spam blacklist (fight 2040+ Referrer Spammers in (Google/Matomo) Analytics) | 69 | 9 | 24 | 700 | Non-prefixed constant | ||
| #2496 | Add Widget After Content | 70 | 6 | 11 | 7k+ | Setting is missing a sanitization callback | ||
| #2497 | Host Header Injection Fix | 70 | 9 | 8 | 400 | Output is not escaped | ||
| #2498 | Press This | 70 | 1 | 44 | 5k+ | Non-prefixed hook name | ||
| #2499 | Simple Sticky Header on Scroll | 70 | 31 | 8 | 900 | Output is not escaped | ||
| #2500 | Upsell Funnel Builder for WooCommerce – Create Upsells, Cross-Sells, Order Bumps, Frequently Bought, and Popups. | 70 | 3 | 1,446 | 3k+ | Non-prefixed global variable |