WordPress.DB.DirectDatabaseQuery.NoCaching
No Caching
The plugin runs a direct database query instead of using a higher-level WordPress API or cache-aware pattern.
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.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #751 | Ultimate WP Mail | 24 | 400 | 546 | 700 | Unsafe printing function | ||
| #752 | Unlimited Elements For Elementor | 24 | 710 | 2,093 | 300k+ | Non-prefixed global variable | ||
| #753 | User Registration & Membership – Free & Paid Memberships, Subscriptions, Content Restriction, User Profile, Custom User Registration & Login Builder | 24 | 664 | 3,321 | 50k+ | Non-prefixed global variable | ||
| #754 | Vimeography: Vimeo Video Gallery WordPress Plugin | 24 | 98 | 212 | 5k+ | Nonce verification recommended | ||
| #755 | Visitor Traffic Real Time Statistics | 24 | 473 | 930 | 30k+ | Non-prefixed global variable | ||
| #756 | PDF Ink Lite – Free PDF Watermark & Password Protection | 24 | 226 | 561 | 2k+ | Non-prefixed global variable | ||
| #757 | WCMultiShipping — Mondial Relay, Inpost & Chronopost for WooCommerce | 24 | 730 | 499 | 5k+ | Output is not escaped | ||
| #758 | Product Feed Manager for WooCommerce – CTX Feed – Support 220+ Shopping & Social Channels | 24 | 1,615 | 1,381 | 70k+ | Text Domain Mismatch | ||
| #759 | Disable Updates – Updates Manager, Disable Automatic Updates, Disable All Updates | 24 | 522 | 135 | 10k+ | Output is not escaped | ||
| #760 | Widget Detector for Elementor | 24 | 1,057 | 1,567 | 1k+ | Non-prefixed global variable | ||
| #761 | Conditional Fees for WooCommerce Lite | 24 | 592 | 1,298 | 500 | Non-prefixed global variable | ||
| #762 | Product Size Charts Plugin for WooCommerce | 24 | 1,042 | 1,422 | 9k+ | Non-prefixed global variable | ||
| #763 | Bulk Edit Products for WooCommerce – WP Sheet Editor | 24 | 941 | 936 | 10k+ | Text Domain Mismatch | ||
| #764 | Extra Fees for WooCommerce | 24 | 1,113 | 1,569 | 7k+ | Non-prefixed global variable | ||
| #765 | Coupon Affiliates – Affiliate Plugin for WooCommerce | 24 | 1,022 | 3,074 | 5k+ | Non-prefixed global variable | ||
| #766 | Bulk Edit Coupons for WooCommerce – WP Sheet Editor | 24 | 1,006 | 950 | 500 | Text Domain Mismatch | ||
| #767 | Premmerce WooCommerce Customers Manager | 24 | 564 | 1,327 | 700 | Non-prefixed global variable | ||
| #768 | Enhanced Ecommerce Google Analytics for WooCommerce | 24 | 771 | 1,480 | 2k+ | Non-prefixed global variable | ||
| #769 | Flat Rate Shipping Method for WooCommerce | 24 | 1,238 | 1,772 | 5k+ | Non-prefixed global variable | ||
| #770 | XT Floating Cart for WooCommerce | 24 | 1,249 | 2,023 | 4k+ | Non-prefixed global variable | ||
| #771 | Payment Plugins Braintree For WooCommerce | 24 | 731 | 755 | 2k+ | Output is not escaped | ||
| #772 | Payment Gateway for PayPal on WooCommerce | 24 | 153 | 561 | 10k+ | Nonce verification recommended | ||
| #773 | pensopay Payments | 24 | 397 | 246 | 2k+ | Output is not escaped | ||
| #774 | Premmerce Permalink Manager for WooCommerce | 24 | 633 | 1,335 | 50k+ | Non-prefixed global variable | ||
| #775 | Product Attachment for WooCommerce | 24 | 1,233 | 1,777 | 7k+ | Non-prefixed global variable | ||
| #776 | NextMove Lite – Thank You Page for WooCommerce | 24 | 916 | 857 | 10k+ | Non-prefixed global variable | ||
| #777 | wallee | 24 | 331 | 220 | 400 | Exception output is not escaped | ||
| #778 | Country Based Payments for WooCommerce | 24 | 531 | 1,295 | 3k+ | Non-prefixed global variable | ||
| #779 | EU VAT Assistant for WooCommerce | 24 | 1,742 | 495 | 5k+ | Non Singular String Literal Domain | ||
| #780 | European VAT Compliance Assistant for WooCommerce | 24 | 515 | 317 | 3k+ | Output is not escaped | ||
| #781 | Store Exporter – Export WooCommerce Products, Orders, Subscriptions, Customers | 24 | 480 | 1,272 | 7k+ | Non-prefixed function | ||
| #782 | AgenWebsite Shipping – Plugin Ongkos Kirim & Generate Resi Otomatis Semua Kurir Indonesia | 24 | 1,199 | 1,041 | 500 | Text Domain Mismatch | ||
| #783 | WPML Multilingual & Multicurrency for WooCommerce | 24 | 1,453 | 1,618 | 100k+ | SQL query is not prepared | ||
| #784 | WC Shop Sync – Square Payment Gateway and Product Synchronization for WooCommerce | 24 | 761 | 1,612 | 900 | Non-prefixed global variable | ||
| #785 | AI ChatBot for eCommerce – WoowBot | 24 | 145 | 528 | 900 | Request data is not unslashed | ||
| #786 | Yoast SEO – Advanced SEO with real-time guidance and built-in AI | 24 | 159 | 386 | 10m+ | Non-prefixed global variable | ||
| #787 | WP Admin Audit | 24 | 1,051 | 781 | 1k+ | error log print r | ||
| #788 | WP-Appbox | 24 | 418 | 390 | 2k+ | Missing Arg Domain | ||
| #789 | Auto Affiliate Links | 24 | 375 | 407 | 3k+ | Output is not escaped | ||
| #790 | WP Contact Slider – Contact Form Slider Widget | 24 | 1,355 | 2,589 | 9k+ | Non-prefixed global variable | ||
| #791 | WP Discourse | 24 | 103 | 114 | 1k+ | Nonce verification recommended | ||
| #792 | WP Fastest Cache – WordPress Cache Plugin | 24 | 541 | 753 | 1m+ | Unsafe printing function | ||
| #793 | Iptanus File Upload | 24 | 509 | 1,325 | 10k+ | Non-prefixed function | ||
| #794 | WP Frontend Delete Account | 24 | 537 | 1,378 | 4k+ | Non-prefixed global variable | ||
| #795 | WP Hotel Booking | 24 | 1,232 | 1,533 | 7k+ | Non-prefixed global variable | ||
| #796 | WP Job Portal – AI-Powered Recruitment System for Company or Job Board website | 24 | 69 | 1,089 | 8k+ | Missing Version | ||
| #797 | WP Layouts | 24 | 349 | 146 | 3k+ | Text Domain Mismatch | ||
| #798 | WP-Members Membership Plugin | 24 | 669 | 382 | 50k+ | Output is not escaped | ||
| #799 | WP Meta and Date Remover | 24 | 665 | 1,314 | 90k+ | Non-prefixed global variable | ||
| #800 | WP Notification Bell | 24 | 736 | 1,591 | 700 | Non-prefixed global variable |