WordPress.WP.AlternativeFunctions.file_system_operations_fclose
file system operations fclose
The plugin performs filesystem work with raw PHP functions where WordPress expects safer filesystem handling.
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.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #901 | Ultimate 410 Gone Status Code | 34 | 136 | 65 | 7k+ | Output is not escaped | ||
| #902 | Visual Form Builder | 34 | 82 | 329 | 20k+ | Direct Query | ||
| #903 | Weaver Xtreme Theme Support | 34 | 1,625 | 43 | 9k+ | Text Domain Mismatch | ||
| #904 | PostNL for WooCommerce | 34 | 597 | 104 | 3k+ | Text Domain Mismatch | ||
| #905 | Integration for WooCommerce and Zoho CRM, Books, Invoice, Inventory, Bigin | 34 | 230 | 154 | 2k+ | Output is not escaped | ||
| #906 | WP LinkedIn Auto Publish | 34 | 165 | 56 | 8k+ | Output is not escaped | ||
| #907 | LightStart – Maintenance Mode, Coming Soon and Landing Page Builder | 34 | 42 | 312 | 400k+ | Request data is not unslashed | ||
| #908 | Thumbnail Slider With Lightbox | 34 | 244 | 141 | 700 | Output is not escaped | ||
| #909 | Thumbnail carousel slider | 34 | 277 | 143 | 2k+ | Output is not escaped | ||
| #910 | WP-SCSS | 34 | 269 | 13 | 40k+ | Exception output is not escaped | ||
| #911 | Vertical Image Slider | 34 | 264 | 138 | 1k+ | Output is not escaped | ||
| #912 | Xml Sitemap Generator | 34 | 72 | 47 | 400 | SQL query is not prepared | ||
| #913 | Embed Plus for YouTube Gallery, Livestream and Lazy Loading with Facades | 34 | 571 | 195 | 100k+ | Output is not escaped | ||
| #914 | Abandoned Checkout Recovery & Order Notifications for WooCommerce | 35 | 108 | 77 | 800 | Text Domain Mismatch | ||
| #915 | Air WP Sync – Airtable to WordPress | 35 | 37 | 45 | 1k+ | Non-prefixed hook name | ||
| #916 | Avif Express | 35 | 26 | 167 | 400 | Input is not validated | ||
| #917 | Awin – Advertiser Tracking for WooCommerce | 35 | 46 | 39 | 1k+ | Non Singular String Literal Domain | ||
| #918 | CatFolders – WordPress Media Library Folders & Categories | 35 | 35 | 76 | 6k+ | Direct Query | ||
| #919 | CF7 Views – Complete Entry Management for Contact Form 7 | 35 | 172 | 181 | 1k+ | Output is not escaped | ||
| #920 | CompressX — AVIF & WebP Converter, Media Replacement | 35 | 26 | 423 | 40k+ | Missing nonce verification | ||
| #921 | Cookies and Content Security Policy | 35 | 261 | 412 | 10k+ | Output is not escaped | ||
| #922 | Create Block Theme | 35 | 43 | 5 | 20k+ | unlink unlink | ||
| #923 | Currency Converter | 35 | 104 | 4 | 400 | Output is not escaped | ||
| #924 | Custom CSS and JavaScript | 35 | 38 | 91 | 10k+ | Input is not sanitized | ||
| #925 | Easy Noindex And Nofollow | 35 | 55 | 18 | 400 | Output is not escaped | ||
| #926 | Editorial Calendar | 35 | 127 | 160 | 20k+ | Output is not escaped | ||
| #927 | Elementor Website Builder – more than just a page builder | 35 | 46 | 428 | 10m+ | Non-prefixed global variable | ||
| #928 | EWWW Image Optimizer | 35 | 225 | 729 | 1m+ | Direct Query | ||
| #929 | External Links Overview | 35 | 57 | 200 | 800 | Non-prefixed global variable | ||
| #930 | Windows Compatibility Fix | 35 | 13 | 6 | 1k+ | Plugin Directory Write | ||
| #931 | Full Width Banner Slider Wp | 35 | 239 | 140 | 2k+ | Output is not escaped | ||
| #932 | g-FFL Cockpit | 35 | 18 | 224 | 500 | Direct Query | ||
| #933 | ImageMagick Engine | 35 | 63 | 29 | 60k+ | Unsafe printing function | ||
| #934 | Import Users & Customers with Meta | WP Ultimate CSV Importer Add-on | 35 | 27 | 140 | 5k+ | Interpolated SQL is not prepared | ||
| #935 | IP Based Login | 35 | 179 | 146 | 600 | Output is not escaped | ||
| #936 | Static Site Exporter | 35 | 54 | 25 | 500 | file system operations mkdir | ||
| #937 | Kargo Takip | 35 | 84 | 142 | 3k+ | Missing nonce verification | ||
| #938 | Lenix scss compiler | 35 | 133 | 34 | 800 | Exception output is not escaped | ||
| #939 | Login Page Styler – Custom WordPress Login Page Customizer & Security | 35 | 125 | 168 | 2k+ | Missing Arg Domain | ||
| #940 | Movylo Marketing Automation | 35 | 38 | 88 | 700 | error log print r | ||
| #941 | NewsPlugin | 35 | 84 | 53 | 400 | Text Domain Mismatch | ||
| #942 | NS Cloner – Site Cloner and Multisite Duplicator | 35 | 29 | 16 | 7k+ | Missing direct file access protection | ||
| #943 | OPcache Reset | 35 | 9 | 7 | 400 | Non-prefixed function | ||
| #944 | Page Optimize | 35 | 70 | 41 | 200k+ | Non Singular String Literal Domain | ||
| #945 | Planyo online reservation system | 35 | 64 | 90 | 400 | Output is not escaped | ||
| #946 | Plausible Analytics | 35 | 244 | 61 | 10k+ | Exception output is not escaped | ||
| #947 | Post List Featured Image | 35 | 112 | 100 | 900 | Output is not escaped | ||
| #948 | QuickWebP – Compress / Optimize Images & Convert WebP | SEO Friendly | 35 | 225 | 110 | 8k+ | Non Singular String Literal Domain | ||
| #949 | Security Optimizer – The All-In-One Protection Plugin | 35 | 40 | 84 | 1m+ | Request data is not unslashed | ||
| #950 | Simple History – Track, Log, and Audit WordPress Changes | 35 | 32 | 122 | 300k+ | Non-prefixed global variable |