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
#651Login Widget With Shortcode263351986k+wp function not compatible with requires wp
#652OOPSpam Anti-Spam: Spam Protection for WordPress Forms & Comments (No CAPTCHA)262725996k+Request data is not unslashed
#653LoginWP (Formerly Peter's Login Redirect)2640127890k+Output is not escaped
#654Post List Designer – Category Post, Recent Post, Post List265421,3201k+Non-prefixed global variable
#655Premmerce User Roles265971,357600Non-prefixed global variable
#656Pressidium Cookie Consent262039510k+Exception output is not escaped
#657Profile Extra Fields by BestWebSoft265145322k+Text Domain Mismatch
#658RestaurantPress26265518600Output is not escaped
#659Role Based Pricing for Woo by Meow Crew265481,3542k+Non-prefixed global variable
#660Video Gallery – Vimeo and YouTube Gallery265617946k+Non-prefixed global variable
#661Carousel, Recent Post Slider and Banner Slider265281,4098k+Non-prefixed global variable
#662StoreGrowth: Smart Sales Booster for WooCommerce | BOGO, Upsells, Direct Checkout, Quick View, Side Cart261254202k+Non-prefixed global variable
#663Subscriber by BestWebSoft26550376900Text Domain Mismatch
#664Visitors Online by BestWebSoft265122691k+Text Domain Mismatch
#665Premmerce SEO for WooCommerce265501,2851k+Non-prefixed global variable
#666Set Price Note (Units, Offers, Editions) for WooCommerce265961,307800Non-prefixed global variable
#667Shipping Method Display Style for WooCommerce265291,3082k+Non-prefixed global variable
#668Eventin – Event Calendar, Event Registration, Tickets & Booking (AI Powered)262,6522,09310k+Text Domain Mismatch
#669WPCOM Member264326381k+Non Singular String Literal Domain
#670Amazon Product in a Post Plugin27362416800Output is not escaped
#671Integration for HubSpot and Contact Form 7, WPForms, Elementor, Ninja Forms277203675k+Text Domain Mismatch
#672WP Zoho for Contact Form 7, WPForms, Elementor, Formidable and Ninja Forms – CRM, Bigin276923813k+Text Domain Mismatch
#673Divi Collage275161,183700Non-prefixed global variable
#674Polls CP27399500400Output is not escaped
#675Echo Knowledge Base – Documentation, FAQs, Chat & Smart Search2728975110k+Output is not escaped
#676Events Calendar for GeoDirectory271,2624622k+Text Domain Mismatch
#677Extra Product Options for WooCommerce275481,342600Non-prefixed global variable
#678FG Joomla to WordPress272781017k+Unsafe printing function
#679Gravity Forms + Stripe27368210600Output is not escaped
#680HM Multiple Roles275371,2871k+Non-prefixed global variable
#681Liza Widget For Spotify and Elementor276091,2871k+Non-prefixed global variable
#682Login Security Solution272161544k+Output is not escaped
#683Magical Shop Builder – WooCommerce Template Builder for Elementor | Shop, Cart, Checkout & Product Page Builder27764593k+Non-prefixed namespace
#684MakeCommerce for WooCommerce278264523k+Text Domain Mismatch
#685Memberful – Membership Plugin273513361k+Text Domain Mismatch
#686Multilanguage by BestWebSoft – WordPress Translation Plugin and Language Switcher274653453k+Text Domain Mismatch
#687Pie Register – User Registration, Profiles & Content Restriction271,7791k+Non-prefixed global variable
#688Rate My Post – Star Rating Plugin by FeedbackWP2722236020k+Output is not escaped
#689Restrict for Elementor275301,223900Non-prefixed global variable
#690SEO Booster274221,4561k+Non-prefixed global variable
#691Shipit27371209400Text Domain Mismatch
#692Simple Download Monitor2721827320k+Output is not escaped
#693Speed Booster Pack ⚡ PageSpeed Optimization Suite271081879k+Missing Translators Comment
#694Terms & Conditions Per Product275331,336800Non-prefixed global variable
#695VOD Infomaniak2779738520k+Output is not escaped
#696Watu Quiz271,0891,0143k+Output is not escaped
#697Content Pilot – Autoblogging & Affiliate Marketing Suite27299269900Output is not escaped
#698WP-DBManager2738630460k+Non-prefixed global variable
#699wp-mpdf271233821k+Non-prefixed global variable
#700YARPP – Yet Another Related Posts Plugin27191331100k+Non-prefixed global variable