WordPress.DB.PreparedSQL.NotPrepared

SQL query is not prepared

A database query includes dynamic data without using `$wpdb->prepare()` or an equivalent safe pattern.

critical weight

Why It Shows Up

The scan found a SQL string passed to `$wpdb` where variables appear to be interpolated or concatenated directly.

Why It Matters

Unprepared SQL can allow SQL injection when user-controlled values reach the query.

How to Fix

  • Move dynamic values into placeholders such as `%s`, `%d`, `%f`, or `%i` where supported.
  • Pass the values as separate arguments to `$wpdb->prepare()`.
  • For table names, column names, and sort directions, use strict allowlists instead of raw user input.

Affected Plugins

RankPluginScoreErrorsWarningsInstallsAddedUpdatedTop Issue
#51SpeakOut! Email Petitions208509943k+Missing nonce verification
#52Events Manager – OpenStreetMaps20559444700Output is not escaped
#53Razorpay for WooCommerce20974855100k+Non-prefixed function
#54Premium Packages – Sell Digital Products Securely202,0322,2323k+Non-prefixed global variable
#55School Management System – WPSchoolPress203535,2751k+Non-prefixed global variable
#56Store Locator WordPress212,3721,57210k+Text Domain Mismatch
#57Backup Migration219811,09380k+Non-prefixed global variable
#58Forumax – AI Powered Advanced Community Forum Plugin214,9364,357600Text Domain Mismatch
#59bbPress219293,672100k+Non-prefixed function
#60Element Pack – Widgets, Templates & Addons for Elementor2110,249358100k+Text Domain Mismatch
#61Pinpoint Booking System – Version 2216343283k+Missing direct file access protection
#62Booking Ultra Pro Appointments Booking Calendar Plugin217612,083400Request data is not unslashed
#63CallTrackingMetrics219232863k+Unsafe printing function
#64SMS Extension for Contact Form 7217201,387400Non-prefixed global variable
#65Cost Calculator Builder2132276630k+Non-prefixed global variable
#66Daily Prayer Time219471,7801k+Non-prefixed global variable
#67DELUCKS SEO213621,171400Missing nonce verification
#68Free Downloads WooCommerce214303594k+Output is not escaped
#69Duplicator – Backups & Migration Plugin – Cloud Backups, Scheduled Backups, & More212,5721,2771m+Output is not escaped
#70Ebook Store216661,087700Non-prefixed global variable
#71EventPrime – Events Calendar, Bookings and Tickets218724,3017k+Non-prefixed global variable
#72Feeds for YouTube (YouTube video, channel, and gallery plugin)21558978100k+Output is not escaped
#73Front End Users217192,759400Non-prefixed global variable
#74Frontend Dashboard21384945500Non-prefixed function
#75If-So Dynamic Content – Elementor & All Page Builders Personalization218897257k+Unsafe printing function
#76Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF214268621m+Non-prefixed global variable
#77Leyka212573,4462k+Request data is not unslashed
#78MailChimp Subscribe Form, Optin Builder, PopUp Builder, Form Builder211,1333,0112k+Non-prefixed global variable
#79Mergado Pack212,323588700Output is not escaped
#80Modular DS: Monitor, update, and backup multiple websites211598140k+Exception output is not escaped
#81Mooberry Book Manager211,0403991k+Text Domain Mismatch
#82MotoPress Hotel Booking213,0671,03710k+Text Domain Mismatch
#83Points Management System For Gamification, Ranks, Badges, and Loyalty Rewards Program – myCred211,4783,33710k+Non-prefixed global variable
#84Oasis Workflow21775575700Text Domain Mismatch
#85Landing Page Builder – Coming Soon page, Maintenance Mode, Lead Page, WordPress Landing Pages211,1732,9839k+Non-prefixed global variable
#86Paid Membership Subscriptions – Effortless Memberships, Recurring Payments & Content Restriction211,9345,24810k+Non-prefixed hook name
#87User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor217011,46550k+Missing Translators Comment
#88PublishPress Planner – Editorial Calendar, Marketing Content, Kanban Board216038906k+Output is not escaped
#89Razorpay for Gravity Forms2141147600Exception output is not escaped
#90Five Star Restaurant Reservations – WordPress Booking Plugin211,0991,14710k+Output is not escaped
#91Seamless Donations is Sunset216005142k+Text Domain Mismatch
#92Professional Social Sharing Buttons, Icons & Related Posts – Shareaholic2132718110k+Output is not escaped
#93Smart Forms – when you need more than just a contact form217765745k+Output is not escaped
#94ThirstyAffiliates – Affiliate Links, Link Branding, Link Tracking & Marketing Plugin2119066030k+Non-prefixed global variable
#95UPC/EAN/GTIN Barcode Generator/Importer21776311500Exception output is not escaped
#96Buckaroo Woocommerce Payments Plugin215843262k+Exception output is not escaped
#97WebP Express21160427300k+Non-prefixed global variable
#98Wise Chat214705065k+Output is not escaped
#99Paysera Payment Gateway for WooCommerce211,8661957k+Exception output is not escaped
#100Pay For Post with WooCommerce219601,4741k+Non-prefixed global variable