WordPress.DB.DirectDatabaseQuery.DirectQuery

Direct Query

The plugin runs a direct database query instead of using a higher-level WordPress API or cache-aware pattern.

medium weight

Why It Shows Up

Plugin Check found `$wpdb` access that queries the database directly, changes schema, or bypasses normal caching expectations.

Why It Matters

Direct queries can be correct, but they are easier to make unsafe, slower at scale, and harder for WordPress to cache or filter.

How to Fix

  • Use WordPress APIs such as post, term, metadata, option, or user functions when they fit the task.
  • If direct SQL is necessary, prepare dynamic values and add a clear caching strategy for repeated reads.
  • Keep schema changes in activation or upgrade routines and make them idempotent.

Affected Plugins

RankPluginScoreErrorsWarningsInstallsAddedUpdatedTop Issue
#2001Shipping Zones by Drawing for WooCommerce3527895600Text Domain Mismatch
#2002ShopMagic Abandoned Cart Recovery for WooCommerce3516232k+Non-prefixed global variable
#2003Product Feed for Google Shopping, Microsoft Advertising and 40+ Channels for WooCommerce Merchant3583762k+Output is not escaped
#2004SHOPVOTE356458400curl curl setopt
#2005Simple Export Import for ACF Data3519641k+Request data is not unslashed
#2006Simple Image Sizes35537560k+Unsafe printing function
#2007Simple Yearly Archive35102366k+Unsafe printing function
#2008SiteGround Migrator351137470k+Missing Arg Domain
#2009Sky Login Redirect357242k+Non-prefixed hook name
#2010Social Sharing Plugin – Social Warfare351714320k+Non-prefixed class
#2011Spacious Toolkit354894700Non-prefixed global variable
#2012Speedy Page Redirect356101k+Output is not escaped
#2013Spots3519549800Output is not escaped
#2014Sticky Chat Widget – Floating Chat Icons, Contact Form, Call, Click to Chat, Email & Message Buttons353329310k+Non-prefixed global variable
#2015StoreEngine — Complete eCommerce Solution with Memberships, Licensing, Affiliates & More35519600Non-prefixed global variable
#2016String locator3552319100k+Non-prefixed global variable
#2017Subscribe to Unlock Lite – Opt In Content Locker Plugin for WordPress35106145500Non-prefixed global variable
#2018Tapfiliate353549400Nonce verification recommended
#2019TBThemes Theme Import358448400Text Domain Mismatch
#2020Starter Sites & Templates by Neve352888100k+Non-prefixed hook name
#2021Advance Product Search- Voice & Ajax Search for WooCommerce351259210k+Text Domain Mismatch
#2022The Courier Guy Shipping for WooCommerce35571073k+Missing nonce verification
#2023theMarketer – Email marketing, Newsletters, Automation & Loyalty for Woocommerce35447700Nonce verification recommended
#2024Two Factor Authentication3510813920k+Output is not escaped
#2025Ultimate Post List35186842k+Missing Arg Domain
#2026Uptime Robot Plugin for WordPress35398324600Text Domain Mismatch
#2027User Photo35112683k+Output is not escaped
#2028Video Grid352531061k+Output is not escaped
#2029Video Gallery35336178600Output is not escaped
#2030Void Elementor Post Grid Addon for Elementor Page builder35189933k+Text Domain Mismatch
#2031W4 Post List35501383k+Non-prefixed global variable
#2032WC Cancel Order35521225k+Non-prefixed hook name
#2033Spreadconnect35128126700Output is not escaped
#2034WC Ukraine Shipping – Integration of Nova Poshta and Ukrposhta for WooCommerce355041647k+Text Domain Mismatch
#2035Webflow Pages3536632k+Non Singular String Literal Domain
#2036wePOS – Point Of Sale (POS) for WooCommerce & Dokan3547662k+Output is not escaped
#2037Wired Impact Volunteer Management352531751k+Output is not escaped
#2038CardCom Payment Gateway35201843k+Text Domain Mismatch
#2039WP Courseware for WooCommerce3555491k+Text Domain Mismatch
#2040Backend Payments for WooCommerce356342900Exception output is not escaped
#2041DPD Baltic Shipping35912022k+Text Domain Mismatch
#2042Conversion Tracking for WooCommerce35746120k+Output is not escaped
#2043Japanized for WooCommerce3566810k+Non-prefixed class
#2044Pixel Manager for WooCommerce – Conversion Tracking, Google Ads, GA4, TikTok, Dynamic Remarketing354923040k+Non-prefixed hook name
#2045Payment Gateway for PayPal Pro & PayPal Checkout for WooCommerce35671472k+Request data is not unslashed
#2046Quaderno: Global Tax & Invoicing Automation for WooCommerce35470500Missing nonce verification
#2047Brevo for WooCommerce351166730k+Output is not escaped
#2048Wholesale Suite – B2B, Dynamic Pricing & WooCommerce Wholesale Prices35225220k+Direct Query
#2049Wooplatnica352724400Non-prefixed class
#2050Access Areas for WordPress351795400Direct Query