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
#301Pastacode337766400Non-prefixed global variable
#302PeproDev WooCommerce Receipt Uploader33325491k+Non Singular String Literal Domain
#303Podcast Subscribe Buttons33552395k+Text Domain Mismatch
#304Review Slider for WooCommerce33160422400Non-prefixed global variable
#305Reviews Plus332233781k+Non-prefixed function
#306Sessions33196103900Output is not escaped
#307SMTP2GO for WordPress – Email Made Easy3318611130k+Output is not escaped
#308Gravity Booster – Styles & Layouts for Gravity Forms332778740k+Missing Arg Domain
#309Testimonial Slider – Free Testimonials Slider Plugin339150800Request data is not unslashed
#310Textmetrics33324163400Output is not escaped
#311CartBounty – Save and recover abandoned carts for WooCommerce3337039910k+Output is not escaped
#312PDF Invoices Italian Add-on for WooCommerce333252005k+Non Singular String Literal Domain
#313WP MyLinks333542061k+Text Domain Mismatch
#314WPReplace内容字符替换插件33209195800Non Singular String Literal Domain
#315AFS Analytics3419498600Text Domain Mismatch
#316Advanced Custom Fields: reCAPTCHA Field3410453800Text Domain Mismatch
#317AGCA – Custom Dashboard & Login Page343504420k+Unsafe printing function
#318AyeCode Connect3417825310k+Nonce verification recommended
#319Cache Master3437127400Output is not escaped
#320CSS JS Manager, Async JavaScript, Defer Render Blocking CSS34761061k+Input is not validated
#321Dr. Flex3483511k+Output is not escaped
#322Essential Classy Addons for Elementor – 150+ Widgets, Templates & Performance Tools34278186500Output is not escaped
#323APG Google Video Sitemap Feed349645800Output is not escaped
#324Lenix Leads Collector3441424210k+Text Domain Mismatch
#325Media Vault34115150800Output is not escaped
#326Meow Analytics (Google Analytics)348054500Output is not escaped
#327Meow Lightbox34755210k+Non Singular String Literal Domain
#328mowomo Social Share342021561k+Output is not escaped
#329One User Avatar | User Profile Picture3468190100k+Non-prefixed global variable
#330MW Font Changer34463757k+Text Domain Mismatch
#331Shift8 CDN348125600Output is not escaped
#332Student Result or Employee Database3489981k+Direct Query
#333Testimonial Slider344482623k+Unsafe printing function
#334Ultimate 410 Gone Status Code34136657k+Output is not escaped
#335Useful Blocks342142220k+Output is not escaped
#336WP Custom Admin Interface3426311830k+Unsafe printing function
#337WP LinkedIn Auto Publish34165568k+Output is not escaped
#338WP Notes Widget3421736700Output is not escaped
#339WP Random Post Thumbnails34420261k+Text Domain Mismatch
#340WP SendFox342961181k+Text Domain Mismatch
#341Amministrazione Trasparente3580461k+Output is not escaped
#342Antideo Email Validator353898800Missing nonce verification
#343Aquila Admin Theme351513293k+Non-prefixed global variable
#344Awin – Advertiser Tracking for WooCommerce3546391k+Non Singular String Literal Domain
#345AXP Cyrillic to Latin352131k+Output is not escaped
#346Basic Google Maps Placemarks35189803k+Output is not escaped
#347Before After Image Comparison Slider for WPBakery Page Builder3558591k+Output is not escaped
#348belingoGeo351361331k+Output is not escaped
#349Tooltipy (tooltips for WP)353701251k+Text Domain Mismatch
#350Wbcom Designs – BuddyPress Activity Social Share3529327500Text Domain Mismatch