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,3892,2455k+Text Domain Mismatch
#3404 Solution155821,53210k+Non-prefixed class
#4MDTF – Meta Data and Taxonomies Filter161,5501,9561k+Non-prefixed global variable
#5AnyComment174454495k+Output is not escaped
#6RestroPress – Online Food Ordering System175363,2361k+Non-prefixed global variable
#7Shopping Cart & eCommerce Store177,45317,8663k+Non-prefixed global variable
#8WPtouch – Make your WordPress Website Mobile-Friendly171,46632550k+Text Domain Mismatch
#9Administrator Z182,061799400Output is not escaped
#10Advanced File Manager – Ultimate File Manager for WordPress And Document Library Solution181,229923100k+Exception output is not escaped
#11JetFormBuilder — Dynamic Blocks Form Builder182,1311,62380k+Text Domain Mismatch
#12Pagopar – WooCommerce Gateway185301,215400Non-prefixed global variable
#13WPPizza – A Restaurant Plugin184,6892,7031k+Text Domain Mismatch
#14GiveWP – Donation Plugin and Fundraising Platform193,4223,570100k+Output is not escaped
#15Go Fetch Jobs (for WP Job Manager)191,4101,741600Non-prefixed global variable
#16Leaflet Maps Marker (Google Maps, OpenStreetMap, Bing Maps)193,2753,2289k+Output is not escaped
#17Netgsm193523481k+Non-prefixed global variable
#18Verified Reviews (Avis Vérifiés)196711,136700Non-prefixed global variable
#19Really Simple Security – Simple and Performant Security (formerly Really Simple SSL)195303753m+Missing Translators Comment
#20Scrollsequence – Cinematic Scroll Image Animation Plugin198781,5283k+Non-prefixed global variable
#21SendPress Newsletters192,2931,4221k+Output is not escaped
#22SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments195431,15080k+Non-prefixed global variable
#23WP Email Template193443452k+Exception output is not escaped
#24AweBooking – Hotel Booking System203095141k+Non-prefixed global variable
#25Brizy – Page Builder2058572660k+Output is not escaped
#26Post Form – Registration Form – Profile Form for User Profiles – Frontend Content Forms for User Submissions (UGC)207362,112900Non-prefixed global variable
#27Download Monitor204231,36780k+Non-prefixed hook name
#28Duplicator – Backups & Migration Plugin – Cloud Backups, Scheduled Backups, & More202,8781,9881m+Non-prefixed global variable
#29Event Organiser201,10454420k+Text Domain Mismatch
#30EventPrime – Events Calendar, Bookings, Tickets & AI208464,2247k+Non-prefixed global variable
#31GoUrl Bitcoin Payment Gateway & Paid Downloads & Membership201,832720700Non Singular String Literal Domain
#32MBE eShip205277401k+Non-prefixed global variable
#33Brevo – Email, SMS, Web Push, Chat, and more.20460646100k+Request data is not unslashed
#34MAS Videos205191,6931k+Non-prefixed global variable
#35Microthemer Lite – Visual Editor to Customize CSS201,0041,69910k+Non-prefixed global variable
#36Shipping for Nova Poshta20598923400Output is not escaped
#37Pix por Piggly (para Woocommerce)205471954k+Exception output is not escaped
#38Pronamic Pay202661,0782k+Non-prefixed global variable
#39Membership Plugin – Kadence Memberships205,0893,0059k+Text Domain Mismatch
#40Restrict User Access – Ultimate Membership & Content Protection209771,84810k+Non-prefixed global variable
#41Robin Image Optimizer – Unlimited Image Optimization, WebP & AVIF20556543100k+Output is not escaped
#42Events Manager – OpenStreetMaps20559444600Output is not escaped
#43WP Compress – Instant Performance & Speed Optimization204,2923,6919k+Non Singular String Literal Domain
#44Premium Packages – Sell Digital Products Securely202,0432,3062k+Non-prefixed global variable
#45wpForo Forum204,3213,03920k+Unsafe printing function
#46School Management System – WPSchoolPress202455,2851k+Non-prefixed global variable
#47Backup Migration219991,08180k+Non-prefixed global variable
#48Forumax – AI Powered Advanced Community Forum Plugin214,9314,352600Text Domain Mismatch
#49Kadence Security – Password, Two Factor Authentication, and Brute Force Protection211,060959700k+Missing Translators Comment
#50Better Messages – Chat Rooms, Group Chat, Private Messages & AI Chat Bots211,6582,18010k+Direct Query