PluginCheck.CodeAnalysis.SettingSanitization.register_settingMissing
Setting is missing a sanitization callback
A registered setting does not define a sanitization callback.
Why It Shows Up
Plugin Check found `register_setting()` without a `sanitize_callback` or equivalent validation strategy.
Why It Matters
Settings can be saved by administrators and then displayed or used later. Without sanitization, invalid or unsafe values can persist.
How to Fix
- Pass a `sanitize_callback` in the `register_setting()` arguments.
- Use built-in sanitizers for simple values and custom callbacks for structured settings.
- Validate allowed values and return a safe default when input is invalid.
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #101 | All-In-One Security (AIOS) – Security and Firewall | 24 | 552 | 1,228 | 1m+ | Non-prefixed global variable | ||
| #102 | AutomatorWP – Automator plugin for no-code automations, webhooks & custom integrations in WordPress | 24 | 1,705 | 1,393 | 7k+ | Text Domain Mismatch | ||
| #103 | BlockMeister – Block Pattern Builder | 24 | 580 | 1,405 | 1k+ | Non-prefixed global variable | ||
| #104 | Brands for WooCommerce | 24 | 787 | 674 | 6k+ | Text Domain Mismatch | ||
| #105 | Message Filter for Contact Form 7 | 24 | 1,057 | 1,594 | 1k+ | Non-prefixed global variable | ||
| #106 | Kognetiks Chatbot for WordPress | 24 | 651 | 1,486 | 600 | Non-prefixed global variable | ||
| #107 | Doubly – Cross Domain Copy Paste for WordPress | 24 | 252 | 55 | 10k+ | Output is not escaped | ||
| #108 | Easy Invoice – Invoice Generator, PDF Quotes & Payments | 24 | 1,366 | 2,013 | 500 | Non-prefixed global variable | ||
| #109 | Login & Register Forms – Popup | Slider | Inline | WooCommerce | 24 | 321 | 677 | 40k+ | Non-prefixed global variable | ||
| #110 | eCommerce Product Catalog Plugin for WordPress | 24 | 621 | 3,177 | 7k+ | Non-prefixed function | ||
| #111 | EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents | 24 | 711 | 1,588 | 100k+ | Output is not escaped | ||
| #112 | Fattura24 | 24 | 312 | 333 | 400 | Output is not escaped | ||
| #113 | Featured Image from URL (FIFU) | 24 | 1,654 | 418 | 70k+ | Non Singular String Literal Domain | ||
| #114 | Force Sell for WooCommerce | 24 | 697 | 455 | 600 | Text Domain Mismatch | ||
| #115 | Formidable PRO2PDF | 24 | 218 | 477 | 1k+ | Non-prefixed global variable | ||
| #116 | Grid/List View for WooCommerce | 24 | 1,127 | 543 | 2k+ | Output is not escaped | ||
| #117 | Load More Products for WooCommerce | 24 | 742 | 456 | 20k+ | Text Domain Mismatch | ||
| #118 | Local Delivery Drivers for WooCommerce | 24 | 1,832 | 1,483 | 900 | Non-prefixed global variable | ||
| #119 | Generate Images (AI) – Magic Post Thumbnail | 24 | 1,940 | 1,761 | 6k+ | Non-prefixed global variable | ||
| #120 | Mailjet Email Marketing | 24 | 435 | 206 | 10k+ | Unsafe printing function | ||
| #121 | Marketing Automation | 24 | 440 | 677 | 600 | Non-prefixed global variable | ||
| #122 | Min and Max Quantity for WooCommerce | 24 | 614 | 456 | 20k+ | Text Domain Mismatch | ||
| #123 | Pagination Styler for WooCommerce | 24 | 799 | 448 | 1k+ | Output is not escaped | ||
| #124 | Participants Database | 24 | 951 | 894 | 7k+ | SQL query is not prepared | ||
| #125 | PeproDev Ultimate Invoice | 24 | 379 | 234 | 4k+ | Output is not escaped | ||
| #126 | Product Catalog Simple | 24 | 1,555 | 1,982 | 1k+ | Output is not escaped | ||
| #127 | Post Affiliate Pro | 24 | 293 | 335 | 500 | Nonce verification recommended | ||
| #128 | Premmerce Brands for WooCommerce | 24 | 700 | 1,344 | 2k+ | Non-prefixed global variable | ||
| #129 | Premmerce Product Filter for WooCommerce | 24 | 817 | 1,486 | 2k+ | Non-prefixed global variable | ||
| #130 | Product Tabs Manager for WooCommerce | 24 | 634 | 482 | 2k+ | Text Domain Mismatch | ||
| #131 | Products Compare for WooCommerce | 24 | 1,022 | 695 | 1k+ | Output is not escaped | ||
| #132 | Quiz and Survey Master (QSM) – Easy Quiz and Survey Maker | 24 | 407 | 2,587 | 40k+ | Non-prefixed hook name | ||
| #133 | RS WP Book Showcase – A Complete Book Catalogue & Library System | 24 | 910 | 343 | 1k+ | Text Domain Mismatch | ||
| #134 | RSVP and Event Management | 24 | 345 | 624 | 3k+ | Direct Query | ||
| #135 | Sailthru for WordPress | 24 | 239 | 266 | 2k+ | Non-prefixed global variable | ||
| #136 | Sales Report for WooCommerce | 24 | 659 | 451 | 1k+ | Output is not escaped | ||
| #137 | SEO Engine – Smart SEO with AI, Schema & Redirection for WordPress | 24 | 239 | 304 | 1k+ | Direct Query | ||
| #138 | SEO Ultimate | 24 | 437 | 269 | 10k+ | Output is not escaped | ||
| #139 | Sequential Order Numbers for WooCommerce | 24 | 698 | 472 | 1k+ | Text Domain Mismatch | ||
| #140 | Servebolt Optimizer | 24 | 1,958 | 681 | 1k+ | Text Domain Mismatch | ||
| #141 | Share This Image | 24 | 744 | 1,582 | 1k+ | Non-prefixed global variable | ||
| #142 | ShiftController Employee Shift Scheduling | 24 | 358 | 196 | 700 | Output is not escaped | ||
| #143 | ShortPixel Adaptive Images – WebP, AVIF, CDN, Image Optimization | 24 | 926 | 322 | 10k+ | Output is not escaped | ||
| #144 | Sugar Calendar – Events Calendar, Event Tickets, and Events Management Platform | 24 | 428 | 956 | 10k+ | Output is not escaped | ||
| #145 | Terms and Conditions Popup for WooCommerce | 24 | 633 | 438 | 1k+ | Text Domain Mismatch | ||
| #146 | NextMove Lite – Thank You Page for WooCommerce | 24 | 916 | 857 | 10k+ | Non-prefixed global variable | ||
| #147 | Yoast SEO – Advanced SEO with real-time guidance and built-in AI | 24 | 159 | 386 | 10m+ | Non-prefixed global variable | ||
| #148 | Auto Affiliate Links | 24 | 375 | 407 | 3k+ | Output is not escaped | ||
| #149 | WP Discourse | 24 | 103 | 114 | 1k+ | Nonce verification recommended | ||
| #150 | Dynamic Team Manager – Team Member Showcase with grid, slider, table Elementor widget & shortcode | 24 | 906 | 2,003 | 900 | Non-prefixed global variable |