PluginCheck.CodeAnalysis.SettingSanitization.register_settingMissing

Setting is missing a sanitization callback

A registered setting does not define a sanitization callback.

critical weight

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

RankPluginScoreErrorsWarningsInstallsAddedUpdatedTop Issue
#951Simple Automatic Updates851812k+Missing Translators Comment
#952FormsCRM – Connect Forms to CRM directly86581k+Missing direct file access protection
#953lazysizes86123600wp function not compatible with requires wp
#954AI for Home Services8685700Setting is missing a sanitization callback
#955WP YouTube Live8628241k+Non-prefixed function
#956Alligator Menu Popup8741600Missing Arg Domain
#957Cookie Notice lite8731400Missing direct file access protection
#958Donorbox – Free Recurring Donation Plugin and Fundraising Platform87568k+Missing Arg Domain
#959Embed Any Document – Embed PDF, Word, PowerPoint and Excel Files877550k+Setting is missing a sanitization callback
#960GTM Kit – Google Tag Manager & GA4 integration8751730k+Missing direct file access protection
#961WP CountUP JS87331k+trademarked term
#962WP OPcache8862510k+Non-prefixed global variable
#963Module Control for Jetpack8811151k+Non-prefixed global variable
#964Simple Custom CSS Plugin88175100k+wp function not compatible with requires wp
#965The Events Calendar: Category Colors8818425k+Non-prefixed global variable
#966File Uploads Addon for WooCommerce888155k+Missing direct file access protection
#967Leadfeeder89232k+Non-prefixed class
#968Impressum8950124k+Short PHP open tag found
#969Link View89995800Missing Translators Comment
#970Mediavine Control Panel89303010k+Text Domain Mismatch
#971Pending Submission Notifications89431k+Non-prefixed function
#972QODE Wishlist for WooCommerce89217810k+Non-prefixed global variable
#973User Role for Flamingo8924700Non-prefixed function
#974WP AutoTags89451k+trademarked term
#975WPGet API – Connect to any external REST API89151910k+Missing direct file access protection
#976Contact Form 7 Google Analytics90657k+trademarked term
#977Easy Google Fonts901226100k+Non-prefixed hook name
#978Genesis Custom Blocks9072210k+Non-prefixed function
#979QODE Quick View for WooCommerce9029810k+Non-prefixed global variable
#980Simple Auto-Poster for Bluesky9032700Setting is missing a sanitization callback
#981Add Anchor Links91521k+application detected
#982Block Guide Lines9163900Non-prefixed function
#983Chatbase91445k+Non-prefixed function
#984Bulk Post Category Creator912021k+Text Domain Mismatch
#985Elmo9162900Missing direct file access protection
#986Faust.js91941k+Missing direct file access protection
#987Givebutter Widget91826k+wp function not compatible with requires wp
#988Hide Author Archive9163500Missing direct file access protection
#989Link Juice Keeper9143610k+Non-prefixed hook name
#990Loan Calculator WP911552k+Non Singular String Literal Text
#991MC4WP: WPML Integration91792k+Missing direct file access protection
#992Super Light Cache Buster9164700Non-prefixed function
#993VenoBox Lightbox911141k+Text Domain Mismatch
#994Block Emails for WooCommerce Checkout9143700Setting is missing a sanitization callback
#995Bootstrap Blocks9183010k+Non-prefixed global variable
#996Admin Taxonomy Filter92335k+Non-prefixed class
#997Auto SRI9241500wp function not compatible with requires wp
#998Expire Passwords9272500Missing Translators Comment
#999FMTC Affiliate Disclosure92501k+Missing Arg Domain
#1000Version Control for jQuery92516k+Offloaded Content