WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound
Non-prefixed global variable
The plugin defines a global variable 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 global variable 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 |
|---|---|---|---|---|---|---|---|---|
| #2951 | Bulk Move | 40 | 85 | 44 | 9k+ | Unsafe printing function | ||
| #2952 | Coming soon Page | 40 | 24 | 18 | 500 | Text Domain Mismatch | ||
| #2953 | Catalog for Woocommerce | 40 | 92 | 75 | 1k+ | Output is not escaped | ||
| #2954 | Categories Metabox Enhanced | 40 | 77 | 36 | 1k+ | Output is not escaped | ||
| #2955 | Category Featured Images Extended | 40 | 177 | 40 | 400 | Text Domain Mismatch | ||
| #2956 | CleverReach Integration for Contact Form 7 | 40 | 103 | 43 | 700 | Text Domain Mismatch | ||
| #2957 | Classified Ads | 40 | 136 | 38 | 1k+ | Text Domain Mismatch | ||
| #2958 | Client Portal – Private user pages and login | 40 | 52 | 29 | 3k+ | Output is not escaped | ||
| #2959 | Client Portal : SuiteDash Direct Login | 40 | 93 | 17 | 1k+ | Text Domain Mismatch | ||
| #2960 | Top-Bar CodeBulls | 40 | 91 | 13 | 800 | Text Domain Mismatch | ||
| #2961 | codoc | 40 | 19 | 39 | 2k+ | Request data is not unslashed | ||
| #2962 | Coupon Generator for WooCommerce | 40 | 39 | 28 | 10k+ | Unsafe printing function | ||
| #2963 | Cron Logger | 40 | 49 | 36 | 1k+ | Output is not escaped | ||
| #2964 | Cryout Serious Theme Settings | 40 | 332 | 51 | 40k+ | Output is not escaped | ||
| #2965 | Crypto Price Widgets – CryptoWP | 40 | 103 | 43 | 600 | Output is not escaped | ||
| #2966 | Custom Simple Rss | 40 | 73 | 130 | 2k+ | Nonce verification recommended | ||
| #2967 | Dashboard Welcome for Beaver Builder | 40 | 38 | 24 | 2k+ | Output is not escaped | ||
| #2968 | Duplicate Page | 40 | 39 | 43 | 3m+ | Unsafe printing function | ||
| #2969 | FameTheme Demo Importer | 40 | 8 | 74 | 30k+ | Nonce verification recommended | ||
| #2970 | FAQ Concertina | 40 | 43 | 16 | 700 | Output is not escaped | ||
| #2971 | FAQ Schema – Accordion, Tab, Slider & Gutenberg Block | 40 | 253 | 46 | 2k+ | Output is not escaped | ||
| #2972 | Flamingo | 40 | 15 | 228 | 800k+ | Nonce verification recommended | ||
| #2973 | FluentComments – Spam protection, AntiSpam, Ajax Enhanced Comments | 40 | 50 | 47 | 700 | Non-prefixed global variable | ||
| #2974 | Flying Scripts: Delay JavaScript to Improve Site Speed & Performance | 40 | 23 | 44 | 30k+ | Missing direct file access protection | ||
| #2975 | FlyWP Helper – Page Cache, Page Optimization, Emails for FlyWP Server Control Panel | 40 | 20 | 81 | 4k+ | Non-prefixed global variable | ||
| #2976 | GetPaid > Item Inventory | 40 | 112 | 52 | 400 | Text Domain Mismatch | ||
| #2977 | Hostinger Reach – AI-Powered Email Marketing for WordPress | 40 | 9 | 46 | 1m+ | Direct Query | ||
| #2978 | I Agree! Popups | 40 | 54 | 46 | 600 | Output is not escaped | ||
| #2979 | iNext Woo Pincode Checker | 40 | 36 | 82 | 700 | Missing nonce verification | ||
| #2980 | Correios Automático – Rastreio, Frete, Etiqueta, Declaração e Devolução | 40 | 32 | 56 | 4k+ | Non-prefixed global variable | ||
| #2981 | Internal Linking of Related Contents | 40 | 714 | 47 | 1k+ | Output is not escaped | ||
| #2982 | Invite Anyone | 40 | 32 | 130 | 1k+ | Non-prefixed hook name | ||
| #2983 | Flag Icons | 40 | 300 | 19 | 3k+ | Output is not escaped | ||
| #2984 | Links shortcode | 40 | 73 | 13 | 900 | Unsafe printing function | ||
| #2985 | Listdomer Core | 40 | 45 | 92 | 400 | Non-prefixed global variable | ||
| #2986 | LLM Bot Tracker – AI Crawler Detection & Analytics | 40 | 18 | 90 | 700 | Database parameter is not escaped | ||
| #2987 | Logbook | 40 | 33 | 59 | 2k+ | Nonce verification recommended | ||
| #2988 | WPO365 | Mail Integration for Office 365 / Outlook | 40 | 59 | 27 | 2k+ | Output is not escaped | ||
| #2989 | MailerSend – Official SMTP Integration | 40 | 39 | 25 | 2k+ | Unsafe printing function | ||
| #2990 | Mark New Posts | 40 | 61 | 39 | 500 | Non Singular String Literal Domain | ||
| #2991 | Mobile Contact Line | 40 | 39 | 355 | 1k+ | Non-prefixed global variable | ||
| #2992 | Modal Window – create popup modal window | 40 | 4 | 170 | 10k+ | Non-prefixed global variable | ||
| #2993 | Monkeyman Rewrite Analyzer | 40 | 89 | 10 | 2k+ | Non Singular String Literal Domain | ||
| #2994 | Multiple Featured Images | 40 | 50 | 22 | 5k+ | Output is not escaped | ||
| #2995 | Flying Images: Optimize and Lazy Load Images for Faster Page Speed | 40 | 32 | 58 | 3k+ | Missing direct file access protection | ||
| #2996 | No-Bot Registration | 40 | 112 | 42 | 2k+ | Unsafe printing function | ||
| #2997 | One Click SSL | 40 | 136 | 62 | 10k+ | Unsafe printing function | ||
| #2998 | OPML Importer | 40 | 35 | 13 | 3k+ | Output is not escaped | ||
| #2999 | Page As Subdomain Lite | 40 | 61 | 25 | 500 | Output is not escaped | ||
| #3000 | Donations via PayPal | 40 | 143 | 17 | 20k+ | Output is not escaped |