WordPress.DB.PreparedSQL.InterpolatedNotPrepared

Interpolated SQL is not prepared

Variables are interpolated into a SQL string before the query is prepared.

critical weight

Why It Shows Up

The scan found dynamic values placed directly inside SQL, often through string interpolation, before `$wpdb->prepare()` can safely bind them.

Why It Matters

Preparing a query after unsafe interpolation does not reliably protect the dynamic value.

How to Fix

  • Replace interpolated variables with placeholders.
  • Pass each dynamic value as a separate `$wpdb->prepare()` argument.
  • Use allowlists for SQL identifiers and directions that cannot be represented as normal values.

Affected Plugins

RankPluginScoreErrorsWarningsInstallsAddedUpdatedTop Issue
#501Booking for Appointments and Events Calendar – Amelia251,48748090k+Exception output is not escaped
#502Animated Number Counters254631,9322k+Non-prefixed global variable
#503Appointment Booking Calendar253271,0551k+Non-prefixed global variable
#504Appointment Hour Booking – Booking Calendar252621,25310k+Non-prefixed global variable
#505ATUM WooCommerce Inventory Management and Stock Tracking252,6381,30410k+Non Singular String Literal Domain
#506bbp style pack251,4191,7916k+Output is not escaped
#507Booking Calendar Contact Form25371884500Input is not validated
#508Online Scheduling and Appointment Booking System – Bookly251,08888860k+SQL query is not prepared
#509Broken Link Checker25727600500k+Output is not escaped
#510BuddyPress Docs252844217k+Nonce verification recommended
#511Bulk Edit Categories and Tags – Create Thousands Quickly on the Editor251,0411,0164k+Text Domain Mismatch
#512Bulk Edit and Create User Profiles – WP Sheet Editor259951,0011k+Text Domain Mismatch
#513SilentShield – Captcha & Anti-Spam for WordPress (CF7, WPForms, Elementor, WooCommerce)2523521410k+Database parameter is not escaped
#514CheckView – Form & Checkout Testing25663371k+Direct Query
#515Website Builder by SeedProd — Theme Builder, Landing Page Builder, Coming Soon Page, Maintenance Mode25991,040700k+Non-prefixed global variable
#516Disable Comments & Delete All Comments255031859k+Output is not escaped
#517Contact Form Email254098989k+Non-prefixed global variable
#518Coupon Creator256984121k+Output is not escaped
#519CP Contact Form with PayPal25466936800Unsafe printing function
#520Cryptocurrency Payment Gateway251,963589400Text Domain Mismatch
#521Smash Balloon Social Post Feed – Simple Social Feeds for WordPress25554982200k+Output is not escaped
#522Disable Admin Notices – Hide Dashboard Notifications25465195100k+Output is not escaped
#523Docket Cache – Object Cache Accelerator2533348120k+Output is not escaped
#524Show Eventbrite Events – Event Feed for Eventbrite255951,525900Non-prefixed global variable
#525Event Genius – Event Management, Events Calendar, Registration, and RSVP251811,579500Non-prefixed global variable
#526Events Made Easy255216,3241k+Non-prefixed function
#527胖鼠采集(Fat Rat Collect)25630190900Missing Arg Domain
#528FlatPM – Ad Manager, AdSense and Custom Code253,01755710k+Text Domain Mismatch
#529FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler253194547k+Non-prefixed global variable
#530AnWP Football Leagues253,5981,955800Text Domain Mismatch
#531Form Vibes – Save Contact Form 7 & Elementor Form Entries to Database257161,50910k+Non-prefixed global variable
#532FunnelKit – Funnel Builder for WooCommerce Checkout253,1642,62430k+Text Domain Mismatch
#533Photo Gallery by Ays – Responsive Image Gallery254668201k+Output is not escaped
#534Portfolio Gallery – Responsive Image Gallery251082,4631k+Non-prefixed global variable
#535GD Rating System251,5111,0431k+Output is not escaped
#536GD Security Headers254075211k+Output is not escaped
#537GeekyBot — AI Copilot, Chatbot, WooCommerce Lead Gen & Zero-Prompt Content25888636k+Non-prefixed global variable
#538Genesis Club Lite25513317900Output is not escaped
#539Gift Cards (Gift Vouchers and Packages) (WooCommerce Supported)25401,0571k+Non-prefixed global variable
#540WPBruiser {no- Captcha anti-Spam}2564625910k+Non Singular String Literal Domain
#541Logo Slider – Logo Showcase, Logo Carousel, Logo Gallery and Client Logo Presentation2578931330k+Text Domain Mismatch
#542Team Members – A WordPress Team Plugin with Gallery, Grid, Carousel, Slider, Table, List, and More251,7842,2222k+Non-prefixed global variable
#543Solid Testimonials – Testimonial Slider, Video Testimonials & Customer Reviews256451,5851k+Non-prefixed global variable
#544HashBar – Announcement, Notification Bar & Popup Campaign252,7186108k+Text Domain Mismatch
#545Cool Author Box – For Widget and Post Content258531,379600Non-prefixed global variable
#546HT Contact Form – Drag & Drop Form Builder for WordPress2516059410k+Non-prefixed global variable
#547Hydra Booking — Appointment Scheduling & Booking Calendar252356992k+Non-prefixed global variable
#548Independent Analytics – WordPress Analytics Plugin251,1482,293100k+Non-prefixed global variable
#549Index WP MySQL For Speed2525025550k+Output is not escaped
#550Smash Balloon Social Photo Feed – Easy Social Feeds Plugin254491,3001m+Interpolated SQL is not prepared