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
#251Print My Blog – Print, PDF, & eBook Converter WordPress Plugin231,0771,6608k+Non-prefixed global variable
#252Protect Admin236061,3002k+Non-prefixed global variable
#253Radio Station by netmix® – Manage and play your Show Schedule in WordPress!239343,6191k+Non-prefixed global variable
#254Read More WP235701,3111k+Non-prefixed global variable
#255Real 3D Flipbook – 3D FlipBook, PDF FlipBook, PDF Viewer, PDF Embedder238561,36510k+Non-prefixed global variable
#256Redirection23523457100k+Non-prefixed global variable
#257Restaurant & Cafe Addon for Elementor238891,3262k+Non-prefixed global variable
#258Reviews Feed – Add Testimonials and Customer Reviews From Google Reviews, Yelp, TripAdvisor, and More23142681100k+Non-prefixed global variable
#259Robo Gallery – Photo & Image Slider231,29153040k+Output is not escaped
#260SecuPress with Simple SSL – Simple and Performant Security231,6961,59040k+Non-prefixed global variable
#261SEO Redirection Plugin – 301 Redirect Manager2327272710k+Non-prefixed global variable
#262Image Optimizer, Resizer and CDN – Sirv236161,0041k+Output is not escaped
#263Site Reviews231,62559860k+Output is not escaped
#264Slider by 10Web – Responsive Image Slider235,81497610k+Output is not escaped
#265Smart Slider 323261268800k+Non-prefixed global variable
#266StreamWeasels Twitch Integration235551,4651k+Non-prefixed global variable
#267Super Video player – Fully Customizable Video Player with Playlist231,1351,6342k+Non-prefixed global variable
#268teachPress237441,5872k+SQL query is not prepared
#269The Events Calendar233,5113,851700k+Text Domain Mismatch
#270Tutor LMS – eLearning and online course solution233953,406100k+Non-prefixed global variable
#271Product Options and Price Calculation Formulas for WooCommerce – Uni CPO232,5141,9291k+Output is not escaped
#272User Menus – Nav Menu Visibility235311,29880k+Non-prefixed global variable
#273UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP236942,43920k+Non-prefixed hook name
#274Wallet System for WooCommerce – Digital Wallet, Buy Now Pay Later (BNPL), Instant Cashback, Referral program, Partial & Subscription Payments231211,2272k+Non-prefixed global variable
#275Checkout with Zelle on Woocommerce236371,4043k+Non-prefixed global variable
#276Advanced Booking & Appointment System – Webba Booking Calendar231,6133,2952k+Non-prefixed global variable
#277Widgets on Pages238091,30620k+Non-prefixed global variable
#278Widgets for WooCommerce Products on Elementor231,6591,4543k+Non-prefixed global variable
#279Germanized for WooCommerce232221,05470k+Non-prefixed global variable
#280Predictive Search for WooCommerce23530644700Output is not escaped
#281StoreCustomizer – A plugin to Customize all WooCommerce Pages235871,42620k+Non-prefixed global variable
#282ShopLentor – All-in-One WooCommerce Growth & Store Enhancement Plugin237,4232,18190k+Text Domain Mismatch
#283Clone2324426240k+Output is not escaped
#284WP Courses LMS – Online Courses Builder, eLearning Courses, Courses Solution, Education Courses23590876500Non-prefixed function
#285WP-CRM System – Manage Clients and Projects232971,094800Non-prefixed global variable
#286WP Free SSL237351,3451k+Non-prefixed global variable
#287Stripe Payment Forms by WP Full Pay – Accept Credit Card Payments, Donations & Subscriptions231,1231,8609k+Output is not escaped
#288WP Hotelier236931,6352k+Non-prefixed global variable
#289Lead Form Data Collection to CRM232111,698400Non-prefixed global variable
#290WP-Lister Lite for Amazon233,0614,177800Output is not escaped
#291FunnelKit Automations – Email Marketing Automation and CRM for WordPress & WooCommerce239402,18020k+SQL query is not prepared
#292WP Migrate Lite – Migration Made Easy23369255200k+Exception output is not escaped
#293WP STAGING – WordPress Backup, Restore, Migration & Clone231,4941,550100k+Non-prefixed global variable
#294Subscribe Forms – Beautiful Email Forms, Embedded Newsletter Forms & MailChimp Form234195422k+Non-prefixed global variable
#295Track, Analyze & Optimize by WP Tao23895756600Output is not escaped
#296Dynamic Team Manager – Team Member Showcase with grid, slider, table Elementor widget & shortcode239332,002900Non-prefixed global variable
#297Customer Support Ticket System & Helpdesk231,7191,464400Text Domain Mismatch
#298Divi Gravity Forms (WP Tools)235791,3112k+Non-prefixed global variable
#299WP Ultimate CSV Importer – WordPress Import & Export for CSV, XML & Excel231,1583,64220k+Interpolated SQL is not prepared
#300WPMobile.App232,9831,5273k+Output is not escaped