WordPress.DB.DirectDatabaseQuery.SchemaChange

Schema Change

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
#401Overlay Image Divi Module245761,3012k+Non-prefixed global variable
#402Participants Database249518947k+SQL query is not prepared
#403Paymob for WooCommerce243482886k+Text Domain Mismatch
#404Post Export Import with Media246191,3341k+Non-prefixed global variable
#405Post Slider and Post Carousel with Post Vertical Scrolling Widget – A Responsive Post Slider245991,53210k+Non-prefixed global variable
#406Premmerce Brands for WooCommerce247001,3442k+Non-prefixed global variable
#407Premmerce Product Filter for WooCommerce248171,4862k+Non-prefixed global variable
#408Product Editor Pro – WooCommerce Bulk Edit: Prices, Stock, Images, Titles, CSV Import & More242,1544,8331k+Non-prefixed global variable
#409Pz-LinkCard249511,58120k+Non-prefixed global variable
#410Quiz and Survey Master (QSM) – Easy Quiz and Survey Maker244072,58740k+Non-prefixed hook name
#411Registrations for the Events Calendar – Event Registration Plugin244059437k+Non-prefixed global variable
#412Reviews Feed – Add Testimonials and Customer Reviews From Google Reviews, Yelp, TripAdvisor, and More24141685100k+Non-prefixed global variable
#413RSFirewall!245635214k+Output is not escaped
#414RSVP and Event Management243456243k+Direct Query
#415Screen Reader Accessibility – WCAG, Text-to-Speech & AI Accessibility Fixes24235330600Non-prefixed global variable
#416Security Plugin, Firewall & Malware Scanner with Auto Removal241,18877030k+Output is not escaped
#417Servebolt Optimizer241,9586811k+Text Domain Mismatch
#418Share This Image247441,5821k+Non-prefixed global variable
#419Shortcodes Ultimate – Content Elements246561,552400k+Non-prefixed global variable
#420SiteGuard WP Plugin24359350500k+Output is not escaped
#421Sitepact's Contact Form 7 Extension For Klaviyo245411,412500Non-prefixed global variable
#422SKT Templates – 100% Free Templates for Elementor & Gutenberg245531,35320k+Non-prefixed global variable
#423Video Slider – Slider Carousel242082,2033k+Request data is not unslashed
#424Slideshow Gallery LITE248964145k+Output is not escaped
#425Smart Variations Images & Swatches for WooCommerce249901,4861k+Non-prefixed global variable
#426Sokol: Smart WooCommerce Search245991,5516k+Non-prefixed global variable
#427SMS Alert – SMS & OTP for WooCommerce, Order Notifications & Abandoned Cart Recovery248311,9034k+Non-prefixed global variable
#428SpiceBox248281,81620k+Non-prefixed global variable
#429Spider Elements – Premium Elementor Widgets & Addons Library245421,555500Non-prefixed global variable
#430Squad Modules Lite – Free Divi 5 & Divi 4 Modules for Divi Builder246051,4711k+Non-prefixed global variable
#431GEO Plugin by Squirrly SEO241,19622430k+Missing Translators Comment
#432StoreEngine — Complete eCommerce Solution with Memberships, Licensing, Affiliates & More24149482600Non-prefixed global variable
#433StreamWeasels Online Status Bar245551,349500Non-prefixed global variable
#434StreamWeasels YouTube Integration245441,3841k+Non-prefixed global variable
#435Sunshine Photo Cart – Client Photo Gallery & Photo Proofing for Photographers243601,4721k+Nonce verification recommended
#436Support Genix – Helpdesk, AI Chatbot, Knowledge Base & Customer Support Ticketing System245898972k+Non-prefixed global variable
#437Surbma | GDPR Proof Cookie Consent & Notice Bar248251,309500Non-prefixed global variable
#438Tainacan241385921k+Direct Query
#439Team Members – Multi Language Supported Team Plugin242,08111,2067k+Non-prefixed global variable
#440Tiered Pricing Table for WooCommerce246061,99010k+Non-prefixed global variable
#441Ultra Addons for Contact Form 7241,54345260k+Text Domain Mismatch
#442Ultimate Maps by Supsystic241,03437410k+Non Singular String Literal Domain
#443Ultimate Member – User Profile, Registration, Login, Member Directory, Content Restriction & Membership Plugin249382,935200k+Non-prefixed global variable
#444Unlimited Elements For Elementor247102,093300k+Non-prefixed global variable
#445Vimeography: Vimeo Video Gallery WordPress Plugin24982125k+Nonce verification recommended
#446Visitor Traffic Real Time Statistics2447392730k+Non-prefixed global variable
#447Widget Detector for Elementor241,0571,5671k+Non-prefixed global variable
#448Conditional Fees for WooCommerce Lite245921,298500Non-prefixed global variable
#449Product Size Charts Plugin for WooCommerce241,0421,4229k+Non-prefixed global variable
#450Extra Fees for WooCommerce241,1131,5697k+Non-prefixed global variable