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
#1351Custom Category Post Order368083500Text Domain Mismatch
#1352Database Collation Fix3650321k+Output is not escaped
#1353Doneren met Mollie364203514k+SQL query is not prepared
#1354Duplicate Post – duplicate pages, copy content, clone posts3671815k+wp function not compatible with requires wp
#1355Dynamic Front-End Heartbeat Control362171111k+Text Domain Mismatch
#1356Dynamic Visibility for Elementor36568950k+Non-prefixed hook name
#1357Easy Support Videos – Embed videos in the admin3616095500Output is not escaped
#1358Enhanced Media Library3636111760k+Unsafe printing function
#1359Enormail Sign Up Forms36133126400Output is not escaped
#1360Events Manager and WPML Compatibility361011771k+Direct Query
#1361Friendly Functions for Welcart36311831k+Non Singular String Literal Domain
#1362Genesis Sandbox Featured Content Widget36229241k+Text Domain Mismatch
#1363GetPaid > Wallet36149174700Text Domain Mismatch
#1364Header Footer Code Manager3681180600k+Non-prefixed global variable
#1365HTTP Requests Manager3698901k+Output is not escaped
#1366IntelliWidget Per Page Custom Menus and Dynamic Content36586162600Output is not escaped
#1367Lara's Google Analytics (GA4)36303579k+Unsafe printing function
#1368Legal Text Connector of the IT-Recht Kanzlei36454610k+Exception output is not escaped
#1369Libro de Reclamaciones y Quejas362661244k+Text Domain Mismatch
#1370LONG URL MAKER3639711k+Direct Query
#1371MailMunch – Grow your Email List36102496k+Output is not escaped
#1372Media Deduper3660999k+Missing Arg Domain
#1373NextGEN Custom Fields362151311k+SQL query is not prepared
#1374MailerLite – Signup forms (official)36430158100k+Output is not escaped
#1375Peter’s Post Notes362241023k+Output is not escaped
#1376Plugins Garbage Collector (Database Cleanup)36325110k+Missing nonce verification
#1377Post Views Stats Counter36142241700Non-prefixed global variable
#1378ActiveCampaign Postmark for WordPress36477550k+Text Domain Mismatch
#1379افزونه رسمی ترب36428620k+Exception output is not escaped
#1380Rara One Click Demo Import361229820k+Missing Translators Comment
#1381Recent Posts3610630500Text Domain Mismatch
#1382Optimize Database after Deleting Revisions3664412760k+Output is not escaped
#1383Search & Replace365053100k+Missing nonce verification
#1384Speed Optimizer – The All-In-One Performance-Boosting Plugin3645961m+Non-prefixed hook name
#1385SMTP for SendGrid – YaySMTP3627961k+Non-prefixed global variable
#1386StaticPress368879500Output is not escaped
#1387Supplier Order Email3654105400Output is not escaped
#1388SureContact – Newsletters, Email Marketing, Automation, Revenue Tracking & CRM363141326k+Text Domain Mismatch
#1389SurveyJS: Drag & Drop Form Builder3612134500Missing Version
#1390Bulk Product Editor plugin allows you to create and edit your WooCommerce products and categories with Google Sheets.3650105400Direct Query
#1391Advance Side Cart, Ajax Cart & Floating Cart for WooCommerce36371216k+Non-prefixed global variable
#1392Plugin Name: Traffic Counter Widget Plugin3671107600Output is not escaped
#1393FOMO & Social Proof Notifications by TrustPulse – Best WordPress FOMO Plugin361043910k+Output is not escaped
#1394Ubigeo de Perú para Woocommerce y WordPress361912354k+Non-prefixed function
#1395Uji Countdown36284984k+Text Domain Mismatch
#1396PDF Flipbook, WPBakery Addon – Unreal FlipBook36400921k+Non Singular String Literal Domain
#1397When Last Login365212350k+Non-prefixed global variable
#1398Widget Indicadores Económicos (Chile)365320500Output is not escaped
#1399Guaranteed Reviews Company (Société des Avis Garantis)363691971k+Output is not escaped
#1400Viva Payments – Viva Wallet WooCommerce Payment Gateway3697321k+Non Singular String Literal Domain