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
#301Subscribe Forms – Beautiful Email Forms, Embedded Newsletter Forms & MailChimp Form234195422k+Non-prefixed global variable
#302Track, Analyze & Optimize by WP Tao23895756600Output is not escaped
#303Customer Support Ticket System & Helpdesk231,7191,464400Text Domain Mismatch
#304WP Ultimate CSV Importer – WordPress Import & Export for CSV, XML & Excel231,1583,64220k+Interpolated SQL is not prepared
#305WPMobile.App232,9831,5333k+Output is not escaped
#306WPCal.io – Easy Meeting Scheduler23694595900Direct Query
#307Photo Engine (Media Organizer & Lightroom)232526502k+Direct Query
#308Xpro Addons For Beaver Builder – Lite233,454640700Text Domain Mismatch
#309Yatra – Travel Booking & Tour Operator Software232,2263,997600Non-prefixed global variable
#310YITH PayPal Express Checkout for WooCommerce233871,4431k+Non-prefixed global variable
#311YITH WooCommerce Affiliates235491,5276k+Non-prefixed global variable
#312Youzify – BuddyPress Community, User Profile, Social Network & Membership Plugin for WordPress232,3171,7145k+Output is not escaped
#313Zephyr Project Manager236672,4541k+Non-prefixed global variable
#3141 Click Migration & Backup: Free WordPress Migration Plugin with Zero Downtime & Easy Clone24140193400Direct Query
#315404 Solution244831,35510k+Non-prefixed class
#316Ad Inserter – Ad Manager & AdSense Ads244,260812300k+Output is not escaped
#317Ivory Search – WordPress Search Plugin241,1731,688100k+Non-prefixed global variable
#318Affiliates Manager241,2686538k+Unsafe printing function
#319All-In-One Security (AIOS) – Security and Firewall245521,2281m+Non-prefixed global variable
#320Atarim – Visual Feedback, Review & AI Collaboration247654421k+wp function not compatible with requires wp
#321AutomatorWP – Automator plugin for no-code automations, webhooks & custom integrations in WordPress241,7051,3937k+Text Domain Mismatch
#322Awesome Support – WordPress HelpDesk & Support Plugin242251,2396k+Non-prefixed global variable
#323Popup Box – Create Countdown, Coupon, Video, Contact Form Popups244821,25350k+Non-prefixed global variable
#324Barcode Scanner (+Mobile App) – Inventory manager, Order fulfillment system, POS (Point of Sale)241,8651,0891k+Text Domain Mismatch
#325Product Feed Manager For WooCommerce – Sell on 200+ Online Marketplaces242,3173,37510k+slow db query meta key
#326Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More243429306k+Non-prefixed global variable
#327Arigato Autoresponder and Newsletter241,318769500Text Domain Mismatch
#328Brands for WooCommerce247876746k+Text Domain Mismatch
#329Brave – Create Popup, Optins, Lead Generation, Survey, Sticky Elements & Interactive Content2423729120k+error log print r
#330BrikPanel: WooCommerce Dashboard, Abandoned Cart Recovery, Google Sheets Sync, Inventory Management & Bulk Editor244,2611,423500Text Domain Mismatch
#331BuddyPress Group Email Subscription24513361k+Non-prefixed function
#332Calculated Fields Form – AI Form Builder for WordPress – Contact, Payment, Quote, Quiz & More2431961140k+Non-prefixed global variable
#333Event Calendar – Calendar241,1111,2622k+Text Domain Mismatch
#334Captivate Sync241735571k+Non-prefixed global variable
#335Business Essentials for Contact Form 7246744038k+Text Domain Mismatch
#336Kognetiks Chatbot for WordPress246511,486600Non-prefixed global variable
#337Church Admin241,5544,207900Direct Query
#338CleanTalk Anti-Spam. Spam Firewall & Bot protection248211,099200k+Missing nonce verification
#339Smart Online Order for Clover241,7461,2461k+Text Domain Mismatch
#340Complianz – GDPR/CCPA Cookie Consent244874031m+Missing Arg Domain
#341RepairBuddy – Repair Shop CRM & Booking Plugin for WordPress248283,665500Request data is not unslashed
#342Contact Form by Supsystic241,9136336k+Non Singular String Literal Domain
#343WPBot – ChatBot Conversational Forms241,2541,2262k+Text Domain Mismatch
#344CRM Perks Forms – WordPress Form Builder248195771k+Output is not escaped
#345Custom Twitter Feeds – A Tweets Widget or X Feed Widget24446922100k+Output is not escaped
#346Customer Reviews for WooCommerce242,2022,44580k+Output is not escaped
#347Defender Security – Malware Scanner, Login Security & Firewall2454759480k+Non-prefixed namespace
#348WP Comment Cleaner – Delete All Comments, Disable Comments, Bulk Delete & Remove Comments245871,43020k+Non-prefixed global variable
#349WP Delicious – Recipe Plugin for Food Bloggers (formerly Delicious Recipes)248452,6434k+Non-prefixed global variable
#350Democracy Poll243874367k+Short PHP open tag found