missing_direct_file_access_protection

Missing direct file access protection

A PHP file in the plugin can be loaded directly instead of through WordPress.

medium weight

Why It Shows Up

Plugin Check found a PHP file without an early guard such as an ABSPATH check. Without that guard, a browser or script can request the file by path.

Why It Matters

Direct access can run code outside the normal WordPress bootstrap, expose output, or trigger assumptions about loaded functions, permissions, and request context.

How to Fix

  • Add a guard near the top of PHP files that are not intended to be requested directly.
  • Use `if ( ! defined( 'ABSPATH' ) ) { exit; }` before the file performs work or sends output.
  • Keep template partials and bootstrap files protected too, not only the main plugin file.

Notes

  • Files that are deliberately public endpoints should route through WordPress APIs or explicitly validate the request before doing work.

Affected Plugins

RankPluginScoreErrorsWarningsInstallsAddedUpdatedTop Issue
#751Smart Variations Images & Swatches for WooCommerce249901,4861k+Non-prefixed global variable
#752MoreConvert Wishlist for WooCommerce243,6816299k+Text Domain Mismatch
#753Sokol: Smart WooCommerce Search245991,5516k+Non-prefixed global variable
#754SMS Alert – SMS & OTP for WooCommerce, Order Notifications & Abandoned Cart Recovery248321,8913k+Non-prefixed global variable
#755SiteOrigin Widgets Bundle24605455400k+Output is not escaped
#756Social Media Auto Publish241,4687136k+Unsafe printing function
#757SpiceBox248281,81620k+Non-prefixed global variable
#758Spider Elements – Premium Elementor Widgets & Addons Library245421,555500Non-prefixed global variable
#759Spotlight Social Feeds – Block, Shortcode, and Widget2441114760k+Output is not escaped
#760Squad Modules Lite – Free Divi 5 & Divi 4 Modules for Divi Builder246051,4721k+Non-prefixed global variable
#761StreamWeasels Online Status Bar245551,349500Non-prefixed global variable
#762StreamWeasels YouTube Integration245441,3841k+Non-prefixed global variable
#763Stripe Payment Forms by WP Simple Pay – Accept Credit Card Payments + Subscriptions with Stripe246346529k+Exception output is not escaped
#764Sugar Calendar – Events Calendar, Event Tickets, and Events Management Platform244311,01010k+Output is not escaped
#765Sunshine Photo Cart – Client Photo Gallery & Photo Proofing for Photographers243601,4721k+Nonce verification recommended
#766Surbma | GDPR Proof Cookie Consent & Notice Bar248251,309500Non-prefixed global variable
#767Team Members – Multi Language Supported Team Plugin242,08111,2067k+Non-prefixed global variable
#768Templately – Elementor & Gutenberg Template Library: 6500+ Free & Pro Ready Templates And Cloud!24167225300k+Nonce verification recommended
#769Terms and Conditions Popup for WooCommerce246334381k+Text Domain Mismatch
#770Timber248512820k+Non-prefixed hook name
#771Tutor LMS – eLearning and online course solution243284,409100k+Non-prefixed global variable
#772Ultimate Addons for Beaver Builder – Lite242,75148620k+Text Domain Mismatch
#773Ultra Addons for Contact Form 7241,54345260k+Text Domain Mismatch
#774Ultimate Maps by Supsystic241,03437410k+Non Singular String Literal Domain
#775Ultimate Member – User Profile, Registration, Login, Member Directory, Content Restriction & Membership Plugin249382,935200k+Non-prefixed global variable
#776Ultimate Post Kit Addons for Elementor2418341230k+Missing nonce verification
#777Ultimate Product Catalog245545255k+Unsafe printing function
#778Ultimate WP Mail24400546700Unsafe printing function
#779Unlimited Elements For Elementor247102,093300k+Non-prefixed global variable
#780UpdraftPlus: WP Backup & Migration Plugin242772993m+Non-prefixed global variable
#781User Registration & Membership – Free & Paid Memberships, Subscriptions, Content Restriction, User Profile, Custom User Registration & Login Builder246633,35350k+Non-prefixed global variable
#782UserFeedback – Create Interactive Feedback Form, User Surveys, and Polls in Seconds24441235200k+Text Domain Mismatch
#783Video Conferencing with Zoom241,10544010k+Unsafe printing function
#784VikRentItems Flexible Rental Management System244,7554,639600Non-prefixed global variable
#785Vimeography: Vimeo Video Gallery WordPress Plugin24982125k+Nonce verification recommended
#786Visitor Traffic Real Time Statistics2447292730k+Non-prefixed global variable
#787PDF Ink Lite – Free PDF Watermark & Password Protection242265612k+Non-prefixed global variable
#788WCMultiShipping — Mondial Relay, Inpost & Chronopost for WooCommerce247334995k+Output is not escaped
#789WC Vendors – WooCommerce Multivendor, WooCommerce Marketplace, Product Vendors241685843k+Non-prefixed class
#790Product Feed Manager for WooCommerce – CTX Feed – Support 220+ Shopping & Social Channels241,6151,37770k+Text Domain Mismatch
#791Disable Updates – Updates Manager, Disable Automatic Updates, Disable All Updates2452213510k+Output is not escaped
#792Widget Detector for Elementor241,0571,5671k+Non-prefixed global variable
#793Conditional Fees for WooCommerce Lite245921,298500Non-prefixed global variable
#794Product Size Charts Plugin for WooCommerce241,0421,4229k+Non-prefixed global variable
#795Premmerce WooCommerce Customers Manager245641,327700Non-prefixed global variable
#796Enhanced Ecommerce Google Analytics for WooCommerce247711,4802k+Non-prefixed global variable
#797Payment Plugins Braintree For WooCommerce247317552k+Output is not escaped
#798Payment Gateway for PayPal on WooCommerce2416366410k+Non-prefixed hook name
#799pensopay Payments243962461k+Output is not escaped
#800Premmerce Permalink Manager for WooCommerce246331,33550k+Non-prefixed global variable