WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound
Non-prefixed constant
The plugin defines a constant 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 constant 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 |
|---|---|---|---|---|---|---|---|---|
| #1851 | Updater by BestWebSoft | 46 | 494 | 219 | 2k+ | Text Domain Mismatch | ||
| #1852 | Zoho Mail for WordPress | 46 | 29 | 48 | 20k+ | Request data is not unslashed | ||
| #1853 | 404 Image Redirection (Replace Broken Images) | 47 | 118 | 85 | 500 | Text Domain Mismatch | ||
| #1854 | Delete Duplicate Posts | 47 | 9 | 50 | 10k+ | Direct Query | ||
| #1855 | Legal Pages – Privacy Policy, Terms & Conditions, GDPR, CCPA, and Cookie Notice Generator | 47 | 44 | 83 | 10k+ | Missing direct file access protection | ||
| #1856 | Real Media Library: Media Library Folder & File Manager | 47 | 1 | 365 | 100k+ | Direct Query | ||
| #1857 | Security Ninja For MainWP | 47 | 246 | 71 | 500 | Text Domain Mismatch | ||
| #1858 | SportsPress for Baseball | 47 | 113 | 34 | 900 | Text Domain Mismatch | ||
| #1859 | Store Locator for WordPress📍 | 47 | 51 | 21 | 1k+ | Missing Arg Domain | ||
| #1860 | Tabby Checkout | 47 | 33 | 46 | 4k+ | Non-prefixed class | ||
| #1861 | The Tribal Plugin | 47 | 43 | 62 | 800 | Non-prefixed function | ||
| #1862 | Userback | 47 | 13 | 20 | 2k+ | Output is not escaped | ||
| #1863 | Better Usability for WooCommerce | 47 | 27 | 87 | 800 | Non-prefixed hook name | ||
| #1864 | iControlWP | 47 | 45 | 59 | 1k+ | Missing direct file access protection | ||
| #1865 | XML Sitemap & Google News | 47 | 270 | 224 | 100k+ | Non-prefixed global variable | ||
| #1866 | Contact Form 7 BWP reCAPTCHA Extension | 48 | 92 | 10 | 400 | Non Singular String Literal Domain | ||
| #1867 | Better Badge – Custom Product Badges for WooCommerce | 48 | 21 | 47 | 500 | Non Singular String Literal Domain | ||
| #1868 | Maps Plugin using Google Maps for WordPress – WP Google Map | 48 | 289 | 38 | 10k+ | wp function not compatible with requires wp | ||
| #1869 | Jetpack Social | 48 | 829 | 254 | 30k+ | Text Domain Mismatch | ||
| #1870 | External Links | 48 | 42 | 13 | 9k+ | Output is not escaped | ||
| #1871 | FlexStock – Product Stock Sync with Google Sheets for WooCommerce | 48 | 241 | 700 | Direct Query | |||
| #1872 | Easy Updates Manager | 48 | 13 | 182 | 300k+ | Non-prefixed global variable | ||
| #1873 | WC Provincia Canton Distrito | 48 | 103 | 14 | 1k+ | Text Domain Mismatch | ||
| #1874 | WPC Smart Wishlist for WooCommerce | 48 | 44 | 38 | 100k+ | Output is not escaped | ||
| #1875 | Analytics by BestWebSoft – Google Analytics Dashboard and Statistic Plugin for WordPress | 49 | 478 | 176 | 1k+ | Text Domain Mismatch | ||
| #1876 | Anti-Spam Protection – No API Key, GDPR Friendly | 49 | 2 | 106 | 1k+ | Direct Query | ||
| #1877 | HT Feed | 49 | 76 | 11 | 700 | Output is not escaped | ||
| #1878 | ReCrawler | 49 | 10 | 40 | 4k+ | Direct Query | ||
| #1879 | SKT Themes Demo Import | 49 | 218 | 104 | 4k+ | Text Domain Mismatch | ||
| #1880 | Songkick Concerts and Festivals | 49 | 9 | 48 | 500 | Input is not sanitized | ||
| #1881 | SpinupWP | 49 | 43 | 38 | 30k+ | Non-prefixed function | ||
| #1882 | Rede Itaú for WooCommerce — Payment PIX, Credit Card and Debit | 49 | 5 | 145 | 1k+ | Missing nonce verification | ||
| #1883 | WP Swiper | 49 | 67 | 28 | 5k+ | Text Domain Mismatch | ||
| #1884 | BuddyPress Groups Extras | 50 | 30 | 51 | 400 | Missing direct file access protection | ||
| #1885 | Category AJAX Filter — Advanced Filter for Posts & Custom Post Types | 50 | 2 | 435 | 6k+ | Non-prefixed global variable | ||
| #1886 | Dynamic Pricing and Discount Rules | 50 | 25 | 65 | 1k+ | Non Singular String Literal Text | ||
| #1887 | IMGspider – 图片采集抓取插件 | 50 | 12 | 49 | 2k+ | Missing nonce verification | ||
| #1888 | PostmagThemes Demo Import | 50 | 191 | 114 | 1k+ | Text Domain Mismatch | ||
| #1889 | Product Open Pricing (Name Your Price) for WooCommerce | 50 | 105 | 37 | 6k+ | Text Domain Mismatch | ||
| #1890 | Send Emails with Mandrill | 50 | 36 | 141 | 6k+ | Non-prefixed global variable | ||
| #1891 | Sözleşmeler | 50 | 6 | 36 | 1k+ | Input is not sanitized | ||
| #1892 | Theme Demo Import | 50 | 101 | 95 | 5k+ | Non-prefixed hook name | ||
| #1893 | Tiempo | 50 | 53 | 8 | 800 | Output is not escaped | ||
| #1894 | BestWebSoft's Twitter | 50 | 477 | 174 | 900 | Text Domain Mismatch | ||
| #1895 | Cart Popup for WooCommerce | 51 | 9 | 115 | 9k+ | Non-prefixed global variable | ||
| #1896 | Feeds for TikTok – Display Video Feeds in Grid Layouts | 51 | 18 | 59 | 1k+ | Request data is not unslashed | ||
| #1897 | Firelight Lightbox | 51 | 78 | 97 | 200k+ | Non-prefixed global variable | ||
| #1898 | Easy Search Replace – Find & Replace Text/HTML/URLs, Remove Footer Credit | 51 | 6 | 61 | 500 | Input is not sanitized | ||
| #1899 | Gutenverse – WordPress Blocks, Page Builder & Site Editor | 51 | 17 | 47 | 20k+ | Non-prefixed hook name | ||
| #1900 | Quotes and Tips by BestWebSoft | 51 | 485 | 190 | 1k+ | Text Domain Mismatch |