WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound
Non-prefixed function
The plugin defines a function 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 function 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 |
|---|---|---|---|---|---|---|---|---|
| #1801 | Easy Dash for LearnDash | 35 | 623 | 88 | 700 | Text Domain Mismatch | ||
| #1802 | Easy Noindex And Nofollow | 35 | 55 | 18 | 400 | Output is not escaped | ||
| #1803 | Easy Panorama | 35 | 120 | 10 | 500 | Non Singular String Literal Domain | ||
| #1804 | Easy Post Types and Fields | 35 | 138 | 135 | 1k+ | Text Domain Mismatch | ||
| #1805 | Easy Social Icons | 35 | 182 | 158 | 20k+ | Output is not escaped | ||
| #1806 | Easy SwipeBox | 35 | 157 | 10 | 2k+ | Non Singular String Literal Domain | ||
| #1807 | Easy Watermark | 35 | 82 | 53 | 30k+ | Non-prefixed global variable | ||
| #1808 | Gutenberg Blocks Library & Toolkit – Editor Plus | 35 | 27 | 11 | 6k+ | Text Domain Mismatch | ||
| #1809 | Elementor Website Builder – more than just a page builder | 35 | 46 | 428 | 10m+ | Non-prefixed global variable | ||
| #1810 | Email Subscription Popup — Newsletter & GDPR Consent | 35 | 683 | 193 | 1k+ | Output is not escaped | ||
| #1811 | Connect WooCommerce to ActiveCampaign by EqualServing | 35 | 135 | 89 | 1k+ | Text Domain Mismatch | ||
| #1812 | Ever Compare – Products Compare Plugin for WooCommerce | 35 | 2 | 23 | 600 | Non-prefixed global variable | ||
| #1813 | EWWW Image Optimizer | 35 | 225 | 731 | 1m+ | Direct Query | ||
| #1814 | Export Featured Images | 35 | 176 | 67 | 1k+ | Output is not escaped | ||
| #1815 | Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager | 35 | 64 | 64 | 80k+ | Non-prefixed global variable | ||
| #1816 | Flexible PDF Invoices for WooCommerce & WordPress | 35 | 15 | 55 | 6k+ | Non-prefixed global variable | ||
| #1817 | Flexible Subscriptions | 35 | 46 | 249 | 1k+ | Non-prefixed global variable | ||
| #1818 | Events Calendar by FooEvents | 35 | 57 | 59 | 4k+ | Non-prefixed global variable | ||
| #1819 | Force Regenerate Thumbnails | 35 | 12 | 17 | 200k+ | unlink unlink | ||
| #1820 | Force Reinstall | 35 | 118 | 34 | 2k+ | Output is not escaped | ||
| #1821 | Friendly Captcha for WordPress | 35 | 192 | 62 | 9k+ | Output is not escaped | ||
| #1822 | Frontend Reset Password | 35 | 83 | 128 | 10k+ | Text Domain Mismatch | ||
| #1823 | Full Width Banner Slider Wp | 35 | 239 | 140 | 2k+ | Output is not escaped | ||
| #1824 | GA4WP – Analytics Dashboard for the Website | 35 | 434 | 157 | 2k+ | Text Domain Mismatch | ||
| #1825 | GDPR Compliance & Cookie Consent | 35 | 251 | 61 | 4k+ | Output is not escaped | ||
| #1826 | Genesis Simple Sidebars | 35 | 9 | 51 | 10k+ | Nonce verification recommended | ||
| #1827 | Get a Newsletter | 35 | 138 | 144 | 400 | Output is not escaped | ||
| #1828 | Glossary | 35 | 169 | 93 | 2k+ | Non Singular String Literal Domain | ||
| #1829 | Google Analytics Opt-Out | 35 | 34 | 7 | 5k+ | Output is not escaped | ||
| #1830 | Gravitec.net – Web Push Notifications | 35 | 47 | 52 | 1k+ | wp function not compatible with requires wp | ||
| #1831 | Gumlet – Image optimization with Resize, Compression, Lazy load, Caching & CDN delivery | 35 | 53 | 45 | 500 | parse url parse url | ||
| #1832 | Health Check & Troubleshooting | 35 | 264 | 238 | 300k+ | Missing Arg Domain | ||
| #1833 | Hippoo Mobile App for WooCommerce | 35 | 5 | 92 | 1k+ | Direct Query | ||
| #1834 | HookMeUp for WooCommerce | 35 | 59 | 29 | 10k+ | Output is not escaped | ||
| #1835 | Image Slider | 35 | 192 | 95 | 4k+ | Output is not escaped | ||
| #1836 | Image Widget | 35 | 165 | 31 | 100k+ | Output is not escaped | ||
| #1837 | IndieWeb | 35 | 5 | 9 | 600 | Non-prefixed hook name | ||
| #1838 | Social Feed Gallery | 35 | 104 | 52 | 80k+ | Text Domain Mismatch | ||
| #1839 | IP Based Login | 35 | 179 | 146 | 600 | Output is not escaped | ||
| #1840 | Static Site Exporter | 35 | 54 | 25 | 500 | file system operations mkdir | ||
| #1841 | Jetpack VideoPress | 35 | 710 | 241 | 7k+ | Text Domain Mismatch | ||
| #1842 | JS Categories List Widget | 35 | 37 | 18 | 1k+ | Non Singular String Literal Domain | ||
| #1843 | JSON Feed (jsonfeed.org) | 35 | 9 | 29 | 1k+ | Non-prefixed global variable | ||
| #1844 | Nobs • Share Buttons | 35 | 314 | 85 | 3k+ | Output is not escaped | ||
| #1845 | Kadence for WooCommerce and Elementor | 35 | 39 | 21 | 3k+ | Output is not escaped | ||
| #1846 | Kaya QR Code Generator | 35 | 193 | 40 | 20k+ | Non Singular String Literal Domain | ||
| #1847 | KBoard 위젯 – 워드프레스 게시판 | 35 | 53 | 32 | 3k+ | Output is not escaped | ||
| #1848 | Kiyoh customer review | 35 | 173 | 68 | 500 | Output is not escaped | ||
| #1849 | Kustom Checkout for WooCommerce | 35 | 101 | 505 | 10k+ | Dynamic hook name | ||
| #1850 | Klarna Order Management for WooCommerce | 35 | 22 | 37 | 10k+ | Non-prefixed hook name |