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
#1501Custom Menu Wizard Widget38326302k+Output is not escaped
#1502Customize Posts3831771k+Non-prefixed hook name
#1503Datafeedr WooCommerce Importer38112565k+Text Domain Mismatch
#1504Decent Comments3893282k+Output is not escaped
#1505Product Badge, Label, Countdown Timer for WooCommerce – Sale Booster3837985k+Interpolated SQL is not prepared
#1506Easy WP Cleaner38581242k+Non-prefixed global variable
#1507Export User Data38187626k+Text Domain Mismatch
#1508GoodBarber3838731k+Nonce verification recommended
#1509Great Caroussel3860131500SQL query is not prepared
#1510HashThemes Demo Importer3871446k+Output is not escaped
#1511Icegram Mailer – Reliable Email Deliverability, No-code SMTP Replacement & Email logs38361061k+Non-prefixed global variable
#1512ThumbPress – Compress Images, Manage Thumbnails, Detect Image Issues, WebP/AVIF, Lazy Loading, Hotlinking & More38218830k+Direct Query
#1513Import to Photo Gallery from NextGen gallery388083400Direct Query
#1514Coding Chicken – JetEngine Importer385529400Missing direct file access protection
#1515Insert PHP Code Snippet3816422790k+Output is not escaped
#15163D FlipBook – PDF Embedder, PDF Flipbook Viewer, Flipbook Image Gallery383537780k+Non Singular String Literal Domain
#1517Maintenance Redirect3824413210k+Missing Arg Domain
#1518Jock On Air Now (JOAN)38121224400Output is not escaped
#1519Lana Downloads Manager38146783k+Unsafe printing function
#1520LWS Cleaner388112920k+Direct Query
#1521Migrate Store: Export and Import WooCommerce Settings3837331k+Non-prefixed global variable
#1522Most And Least Read Posts Widget38130241k+Output is not escaped
#1523Name Directory385203093k+Output is not escaped
#1524YAPE A1 Tiendas382443900Missing nonce verification
#1525Podlove Subscribe button38148452k+Output is not escaped
#1526Post views Stats3837511k+Non-prefixed global variable
#1527PostLinks3810710700Output is not escaped
#1528qTranslate X Cleanup and WPML Import38167102800Text Domain Mismatch
#1529Quick Download Button38341232k+Non-prefixed global variable
#1530RDP Wiki Embed386926400Output is not escaped
#1531Like This3860171k+Output is not escaped
#1532LinkBoss – Semantic AI Internal Linking3828572k+Missing Arg Domain
#1533Simple Expires383239500Non Singular String Literal Domain
#1534Simple Google Sitemap XML383882k+Output is not escaped
#1535Simple Visitor Counter384127700Output is not escaped
#1536Smart Maintenance Mode381371281k+Output is not escaped
#1537SRS Simple Hits Counter3843988k+Output is not escaped
#1538Tag Manager – Header, Body And Footer389731920k+Non-prefixed global variable
#1539Broadcast38211071k+Direct Query
#1540Accessibility Tools & Alt Text Finder3836563k+Text Domain Mismatch
#1541Plugin Name: Traffic Stats Widget Plugin3869107600Output is not escaped
#1542Trash Duplicate and 301 Redirect38131031k+Nonce verification recommended
#1543Ultimate Member Widgets for Elementor – Login Form, Register Form & User Directory3817110400Non-prefixed namespace
#1544Unconfirmed3820791k+Nonce verification recommended
#1545VidShop – Shoppable Videos for WooCommerce38491441k+Database parameter is not escaped
#1546Visual Admin Customizer382051500Input is not sanitized
#1547Shipping Packages for WooCommerce – Dropship from multiple locations like AliExpress, eBay, Amazon, Etsy389426900Non Singular String Literal Domain
#1548WholesaleX – B2B & Wholesale Plugin for WooCommerce with Wholesale Prices38331812k+Non-prefixed global variable
#1549WishSuite – Wishlist for WooCommerce38761331k+Output is not escaped
#1550Products Coming Soon for WooCommerce3815162700Output is not escaped