WordPress.WP.AlternativeFunctions.file_system_operations_readfile

file system operations readfile

The plugin performs filesystem work with raw PHP functions where WordPress expects safer filesystem handling.

medium weight

Why It Shows Up

Plugin Check found functions such as `fopen`, `fwrite`, `chmod`, `mkdir`, `readfile`, or related operations.

Why It Matters

WordPress sites can use different filesystem permissions and transports. Raw filesystem calls can fail on common hosts or write to unsafe locations.

How to Fix

  • Use WordPress filesystem helpers when writing, reading, or changing files in plugin-managed paths.
  • Validate paths and keep writes inside directories owned by the plugin or WordPress uploads.
  • Never write PHP code from user input or remote responses.

Affected Plugins

RankPluginScoreErrorsWarningsInstallsAddedUpdatedTop Issue
#251Media Library Downloader3519154k+unlink unlink
#252MONEI Payments for WooCommerce351565500Non-prefixed hook name
#253Otter Blocks – Gutenberg Blocks, Page Builder for Gutenberg Editor & FSE3513242300k+Missing direct file access protection
#254Solid Performance – Your No-Code Caching, Performance, & Page Speed Solution3575614k+Exception output is not escaped
#255SSL Insecure Content Fixer352860100k+Input is not sanitized
#256The Courier Guy Shipping for WooCommerce35571073k+Missing nonce verification
#257Converter for Media – Optimize images | Convert WebP & AVIF3513053500k+curl curl setopt
#258Pixel Manager for WooCommerce – Conversion Tracking, Google Ads, GA4, TikTok, Dynamic Remarketing355224940k+Non-prefixed hook name
#259Invoices for WooCommerce355516810k+Non-prefixed global variable
#260WP Associate Post R235259862k+Output is not escaped
#261Database Backup for WordPress351288860k+Output is not escaped
#262BP Group Documents3627195600Non-prefixed global variable
#263bpost shipping369743600Output is not escaped
#264Bulgarisation for WooCommerce361366035k+Nonce verification recommended
#265Export Variable Products367949400Text Domain Mismatch
#266If-So Geolocation3650571k+Non-prefixed global variable
#267PDF Forms Filler for CF736185793k+Text Domain Mismatch
#268Search & Replace365053100k+Missing nonce verification
#269WP Publication Archive3619764400Text Domain Mismatch
#270Adaptive Images for WordPress3751753k+Output is not escaped
#271Debug Log Viewer3726831k+Missing nonce verification
#272Varnish/Nginx Proxy Caching3728736600Output is not escaped
#273Checkout Files Upload for WooCommerce38571207k+Input is not sanitized
#274ThumbPress – Compress Images, Manage Thumbnails, Detect Image Issues, WebP/AVIF, Lazy Loading, Hotlinking & More38299120k+Direct Query
#275Lana Downloads Manager38146783k+Unsafe printing function
#276Migrate Store: Export and Import WooCommerce Settings3837331k+Non-prefixed global variable
#277Quick Download Button38341232k+Non-prefixed global variable
#278Connect WooCommerce Shop to ERP/CRM, Verifactu and EU/VAT Compliance3823104900Direct Query
#279WPC Product Options for WooCommerce38571824k+Non-prefixed global variable
#280Cookies for Comments39222920k+Input is not validated
#281Elementor Website Builder – more than just a page builder394442710m+Non-prefixed global variable
#282Library Viewer396593400Non-prefixed hook name
#283Shared Files – File Upload & Download Manager3951824k+Nonce verification recommended
#284Tagging403337500Output is not escaped
#285Zippy4043318k+Output is not escaped
#286Authenticator4159441k+Output is not escaped
#287Simple Cache4133591k+Input is not sanitized
#288Clover Payments for WooCommerce4225152k+Exception output is not escaped
#289Simple Download Counter4258462k+Output is not escaped
#290Good Old Twitter Feed Widget4311010400Text Domain Mismatch
#291Hyper Cache45361008k+Non-prefixed global variable
#292404 Image Redirection (Replace Broken Images)4711885500Text Domain Mismatch
#293iControlWP4745591k+Missing direct file access protection
#294SiteEase Bulk Delete Manager495072600Direct Query
#295Download Media Library4922401k+Text Domain Mismatch
#296Yeloni Exit Popup | (Free) GDPR Compliance544112700Output is not escaped
#297REVIEWS.io for WooCommerce58711611k+Non-prefixed global variable
#298flowpaper59133110k+Non-prefixed function
#299AAM Protected Media Files621310600Direct Query
#300WP Downloader6211152k+Output is not escaped