WordPress.WP.AlternativeFunctions.file_system_operations_is_writable
file system operations is writable
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 |
|---|---|---|---|---|---|---|---|---|
| #201 | Kognetiks Chatbot for WordPress | 24 | 651 | 1,486 | 600 | Non-prefixed global variable | ||
| #202 | Church Admin | 24 | 1,554 | 4,207 | 900 | Direct Query | ||
| #203 | CleanTalk Anti-Spam. Spam Firewall & Bot protection | 24 | 818 | 1,092 | 200k+ | Missing nonce verification | ||
| #204 | Complianz – GDPR/CCPA Cookie Consent | 24 | 487 | 403 | 1m+ | Missing Arg Domain | ||
| #205 | Contact Form by Supsystic | 24 | 1,913 | 633 | 6k+ | Non Singular String Literal Domain | ||
| #206 | WPBot – ChatBot Conversational Forms | 24 | 1,254 | 1,226 | 2k+ | Text Domain Mismatch | ||
| #207 | Custom CSS | 24 | 703 | 657 | 1k+ | Output is not escaped | ||
| #208 | Customer Reviews for WooCommerce | 24 | 2,202 | 2,445 | 80k+ | Output is not escaped | ||
| #209 | Defender Security – Malware Scanner, Login Security & Firewall | 24 | 547 | 594 | 80k+ | Non-prefixed namespace | ||
| #210 | Doubly – Cross Domain Copy Paste for WordPress | 24 | 252 | 55 | 10k+ | Output is not escaped | ||
| #211 | Easy Form Builder by WhiteStudio — Drag & Drop Form Builder | 24 | 194 | 381 | 1k+ | Nonce verification recommended | ||
| #212 | Email Subscribers & Newsletters – Email Marketing, Post Notifications & Newsletter Plugin for WordPress | 24 | 652 | 1,495 | 60k+ | Non-prefixed hook name | ||
| #213 | Enable Media Replace | 24 | 212 | 276 | 600k+ | Output is not escaped | ||
| #214 | Event Tickets and Registration | 24 | 3,409 | 4,217 | 90k+ | Non-prefixed global variable | ||
| #215 | Export WordPress Pages to Static HTML & PDF — Static Site Export | 24 | 509 | 304 | 4k+ | Text Domain Mismatch | ||
| #216 | Etsy Integration For WooCommerce | 24 | 1,246 | 4,643 | 900 | Non-prefixed global variable | ||
| #217 | F12 Profiler | 24 | 282 | 451 | 500 | Direct Query | ||
| #218 | Fast Velocity Minify | 24 | 282 | 256 | 40k+ | Unsafe printing function | ||
| #219 | Football Pool | 24 | 1,085 | 733 | 1k+ | Output is not escaped | ||
| #220 | Force Sell for WooCommerce | 24 | 697 | 455 | 600 | Text Domain Mismatch | ||
| #221 | Formidable PRO2PDF | 24 | 218 | 477 | 1k+ | Non-prefixed global variable | ||
| #222 | Fuse Social Floating Sidebar | 24 | 1,838 | 1,578 | 10k+ | Non-prefixed global variable | ||
| #223 | Photo Gallery – Responsive Image Galleries by Supsystic | 24 | 240 | 91 | 20k+ | Text Domain Mismatch | ||
| #224 | GD Mail Queue | 24 | 502 | 582 | 700 | Output is not escaped | ||
| #225 | GG Woo Feed for WooCommerce Shopping Feed on Google and Other Channels | 24 | 469 | 592 | 1k+ | Non-prefixed global variable | ||
| #226 | Simple Calendar – Google Calendar Plugin | 24 | 2,053 | 592 | 50k+ | Missing direct file access protection | ||
| #227 | Easy Google Maps | 24 | 1,764 | 389 | 20k+ | Non Singular String Literal Domain | ||
| #228 | Grid/List View for WooCommerce | 24 | 1,116 | 546 | 2k+ | Output is not escaped | ||
| #229 | Hummingbird Performance – Cache & Page Speed Optimization for Core Web Vitals | Critical CSS | Minify CSS | Defer CSS Javascript | CDN | 24 | 3,410 | 866 | 70k+ | Text Domain Mismatch | ||
| #230 | Infinite Uploads – Offload Media and Video to Cloud Storage | 24 | 586 | 722 | 800 | Direct Query | ||
| #231 | InstaWP Connect – 1-click WP Staging & Migration | 24 | 253 | 811 | 40k+ | Non-prefixed global variable | ||
| #232 | Dynamics 365 Integration | 24 | 383 | 166 | 600 | Output is not escaped | ||
| #233 | Koko Analytics – Privacy-Friendly WordPress Analytics | 24 | 166 | 395 | 60k+ | Short PHP open tag found | ||
| #234 | LifterLMS – WP LMS for eLearning, Online Courses, & Quizzes | 24 | 414 | 1,176 | 10k+ | Non-prefixed global variable | ||
| #235 | Load More Products for WooCommerce | 24 | 731 | 459 | 20k+ | Text Domain Mismatch | ||
| #236 | MailerPress – Newsletter, email marketing & AI automation | 24 | 805 | 3,931 | 1k+ | Direct Query | ||
| #237 | Mang Board WP | 24 | 1,213 | 4,720 | 9k+ | Non-prefixed global variable | ||
| #238 | Min and Max Quantity for WooCommerce | 24 | 603 | 459 | 20k+ | Text Domain Mismatch | ||
| #239 | My Agile Privacy® – CMP, Cookie Consent & Privacy Tools | 24 | 1,170 | 674 | 7k+ | Text Domain Mismatch | ||
| #240 | Newsletter – Send awesome emails from WordPress | 24 | 898 | 2,219 | 200k+ | Non-prefixed global variable | ||
| #241 | Pagination Styler for WooCommerce | 24 | 799 | 448 | 1k+ | Output is not escaped | ||
| #242 | Participants Database | 24 | 950 | 894 | 7k+ | SQL query is not prepared | ||
| #243 | PDF Generator for WordPress Elementor | 24 | 513 | 271 | 1k+ | Exception output is not escaped | ||
| #244 | PixelYourSite – Your smart PIXEL (TAG) & API Manager | 24 | 1,176 | 2,416 | 500k+ | Non-prefixed namespace | ||
| #245 | Post Status Notifier Lite | 24 | 984 | 451 | 700 | Missing direct file access protection | ||
| #246 | Product Tabs Manager for WooCommerce | 24 | 634 | 482 | 2k+ | Text Domain Mismatch | ||
| #247 | Product Watermark for WooCommerce | 24 | 685 | 459 | 2k+ | Text Domain Mismatch | ||
| #248 | Products Compare for WooCommerce | 24 | 1,022 | 695 | 1k+ | Output is not escaped | ||
| #249 | reGenerate Thumbnails Advanced | 24 | 220 | 122 | 70k+ | Unsafe printing function | ||
| #250 | PublishPress Revisions: Duplicate Posts, Submit, Approve and Schedule Content Changes | 24 | 421 | 583 | 10k+ | Missing Translators Comment |