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
#1BulletProof Security05,0484,94920k+Output is not escaped
#2Themify Builder95,3042,1365k+Text Domain Mismatch
#3MDTF – Meta Data and Taxonomies Filter161,5501,9561k+Non-prefixed global variable
#4AnyComment174454495k+Output is not escaped
#5RestroPress – Online Food Ordering System175243,1551k+Non-prefixed global variable
#6wpForo Forum174,0482,92220k+Unsafe printing function
#7WPtouch – Make your WordPress Website Mobile-Friendly171,46632550k+Text Domain Mismatch
#8Pagopar – WooCommerce Gateway185301,215400Non-prefixed global variable
#9Podlove Podcast Publisher182,3541,4333k+Output is not escaped
#10Property Hive181,9576,0273k+Missing nonce verification
#11Shopping Cart & eCommerce Store185,37317,4663k+Non-prefixed global variable
#12WPPizza – A Restaurant Plugin184,6892,7031k+Text Domain Mismatch
#13Element Pack Addons for Elementor – Elementor Widgets, Elementor Templates, Elementor Addons1910,340360100k+Text Domain Mismatch
#14Advanced File Manager – Ultimate File Manager for WordPress And Document Library Solution191,218901100k+Exception output is not escaped
#15Go Fetch Jobs (for WP Job Manager)191,4101,741700Non-prefixed global variable
#16JetFormBuilder — Dynamic Blocks Form Builder192,1031,60480k+Text Domain Mismatch
#17Leaflet Maps Marker (Google Maps, OpenStreetMap, Bing Maps)193,2753,2289k+Output is not escaped
#18Netgsm193343081k+Setting is missing a sanitization callback
#19Verified Reviews (Avis Vérifiés)196711,136700Non-prefixed global variable
#20Really Simple Security – Simple and Performant Security (formerly Really Simple SSL)195363793m+Missing Translators Comment
#21Membership Plugin – Kadence Memberships195,0832,9829k+Text Domain Mismatch
#22Scrollsequence – Cinematic Scroll Image Animation Plugin198781,5284k+Non-prefixed global variable
#23SendPress Newsletters192,2931,4221k+Output is not escaped
#24SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments195331,14980k+Non-prefixed global variable
#25WP Email Template193443452k+Exception output is not escaped
#26WP Import Export Lite1973797940k+Non-prefixed global variable
#27WP Directory Kit191,5042,6382k+Non-prefixed global variable
#28WPJAM Basic193253464k+Output is not escaped
#29AweBooking – Hotel Booking System203095141k+Non-prefixed global variable
#30Brizy – Page Builder2058672670k+Output is not escaped
#31Post Form – Registration Form – Profile Form for User Profiles – Frontend Content Forms for User Submissions (UGC)207362,112900Non-prefixed global variable
#32Download Monitor204231,36480k+Non-prefixed hook name
#33Event Espresso – Event Registration & Ticketing Sales2012,6982,135600Text Domain Mismatch
#34Event Organiser201,10454420k+Text Domain Mismatch
#35GiveWP – Donation Plugin and Fundraising Platform203,4103,554100k+Output is not escaped
#36GoUrl Bitcoin Payment Gateway & Paid Downloads & Membership201,832720700Non Singular String Literal Domain
#37Leaky Paywall20322789600Nonce verification recommended
#38Link Library201,9421,39410k+Unsafe printing function
#39MBE eShip205277401k+Non-prefixed global variable
#40Brevo – Email, SMS, Web Push, Chat, and more.20460646100k+Request data is not unslashed
#41MAS Videos205191,6931k+Non-prefixed global variable
#42Microthemer Lite – Visual Editor to Customize CSS201,0041,69910k+Non-prefixed global variable
#43Shipping for Nova Poshta20598923500Output is not escaped
#44Pix por Piggly (para Woocommerce)205471954k+Exception output is not escaped
#45Pronamic Pay202661,0782k+Non-prefixed global variable
#46Robin Image Optimizer – Unlimited Image Optimization, WebP & AVIF20556543100k+Output is not escaped
#47SpeakOut! Email Petitions208509942k+Missing nonce verification
#48Events Manager – OpenStreetMaps20559444700Output is not escaped
#49Razorpay for WooCommerce20975859100k+Non-prefixed function
#50Premium Packages – Sell Digital Products Securely202,0212,1902k+Non-prefixed global variable