Squiz.PHP.DiscouragedFunctions.Discouraged
Discouraged PHP function
The plugin uses a PHP or WordPress pattern that coding standards discourage.
Why It Shows Up
Plugin Check found a discouraged function, forbidden function, goto, backtick operator, or similar construct.
Why It Matters
Discouraged patterns are often harder to review, less portable across hosts, or easier to misuse securely.
How to Fix
- Identify why the construct is used and whether WordPress provides a safer API.
- Replace shell execution, dynamic execution, or broad forbidden functions with constrained WordPress APIs.
- If a third-party library triggers the warning, isolate and document it.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #801 | Holded integration | 55 | 72 | 23 | 2k+ | Non Singular String Literal Domain | ||
| #802 | AI Copilot – ChatGPT Chatbot & AI Engine for Post Automation | 56 | 65 | 20 | 1k+ | Text Domain Mismatch | ||
| #803 | SureMembers – Membership & Content Restriction Plugin | 56 | 52 | 102 | 800 | Request data is not unslashed | ||
| #804 | Pantheon Migrations | 57 | 15 | 26 | 1k+ | Output is not escaped | ||
| #805 | MC4WP: Mailchimp for WordPress | 57 | 238 | 1m+ | Non-prefixed global variable | |||
| #806 | Search Exclude | 57 | 73 | 40 | 50k+ | Text Domain Mismatch | ||
| #807 | Social Chat – Click To Chat App Button | 57 | 81 | 44 | 200k+ | Text Domain Mismatch | ||
| #808 | PDF invoice for WP ERP | 58 | 96 | 134 | 2k+ | Non-prefixed global variable | ||
| #809 | flowpaper | 58 | 14 | 31 | 10k+ | Non-prefixed function | ||
| #810 | Co-Authors Plus | 59 | 2 | 76 | 20k+ | Input is not sanitized | ||
| #811 | Cloudways WordPress Migrator | 62 | 15 | 25 | 20k+ | Output is not escaped | ||
| #812 | DreamHost Automated Migration | 62 | 15 | 23 | 20k+ | Output is not escaped | ||
| #813 | Migrate To Liquid Web & Nexcess | 62 | 15 | 23 | 2k+ | Output is not escaped | ||
| #814 | Pressable Automated Migration | 62 | 15 | 23 | 3k+ | Output is not escaped | ||
| #815 | Migrate to WordPress.com | 62 | 15 | 28 | 2k+ | Output is not escaped | ||
| #816 | Mantenimiento web | 63 | 49 | 15 | 20k+ | Text Domain Mismatch | ||
| #817 | Werk aan de Muur | 64 | 48 | 20 | 900 | Non Singular String Literal Domain | ||
| #818 | SocketLabs | 65 | 15 | 18 | 900 | Output is not escaped | ||
| #819 | Web and WooCommerce Addons for WPBakery Builder | 65 | 497 | 123 | 1k+ | Text Domain Mismatch | ||
| #820 | Easy PHP Settings | 66 | 34 | 48 | 2k+ | Missing Translators Comment | ||
| #821 | Popup Maker – Boost Sales, Conversions, Optins, Subscribers with the Ultimate WP Popup Builder | 66 | 51 | 690 | 700k+ | Non-prefixed hook name | ||
| #822 | Really Simple CSV Importer | 66 | 38 | 8 | 40k+ | Output is not escaped | ||
| #823 | Safe Redirect Manager | 66 | 9 | 60 | 40k+ | Non-prefixed hook name | ||
| #824 | Ajax add to cart for WooCommerce | 66 | 67 | 31 | 10k+ | Text Domain Mismatch | ||
| #825 | News Magazine X Core | 68 | 63 | 30 | 5k+ | Missing Translators Comment | ||
| #826 | Shiptastic Integration for DHL | 68 | 54 | 36 | 10k+ | Missing Translators Comment | ||
| #827 | Increase Maximum Upload File Size | 68 | 28 | 14 | 40k+ | Missing Arg Domain | ||
| #828 | WP Sanitize Accented Uploads | 68 | 15 | 16 | 800 | Quoted Simple Placeholder | ||
| #829 | WP Wand – Unlimited Content Generation using AI – for OpenAI, Claude, Openrouter and Deepseek | 69 | 452 | 25 | 1k+ | Text Domain Mismatch | ||
| #830 | Automatic Domain Changer | 69 | 37 | 14 | 10k+ | Text Domain Mismatch | ||
| #831 | ELEX WooCommerce Bulk Edit Products, Prices & Attributes (Basic) | 69 | 511 | 51 | 4k+ | Text Domain Mismatch | ||
| #832 | WPThumb | 70 | 30 | 9 | 800 | Output is not escaped | ||
| #833 | Direct Checkout for WooCommerce | 71 | 78 | 35 | 80k+ | Text Domain Mismatch | ||
| #834 | Auto Featured Image from Title | 72 | 24 | 4 | 1k+ | Setting is missing a sanitization callback | ||
| #835 | OpenID Connect Generic Client | 73 | 9 | 59 | 10k+ | Non-prefixed hook name | ||
| #836 | Change Storefront Footer Copyright Text | 73 | 72 | 21 | 4k+ | Text Domain Mismatch | ||
| #837 | Edit Author Slug | 74 | 5 | 8 | 100k+ | Output is not escaped | ||
| #838 | Force First and Last Name as Display Name | 75 | 5 | 12 | 2k+ | Missing nonce verification | ||
| #839 | Starter Templates & Sites Pack by ThemeGrill | 75 | 21 | 50 | 70k+ | Non-prefixed hook name | ||
| #840 | Autocomplete WooCommerce Orders | 76 | 70 | 55 | 30k+ | Text Domain Mismatch | ||
| #841 | FluentPlayer – Video Player With Forms & Lead Capture | 76 | 5 | 40 | 1k+ | Database parameter is not escaped | ||
| #842 | Rearrange Products for WooCommerce | 76 | 1 | 22 | 20k+ | Input is not sanitized | ||
| #843 | Bit Flows: AI Agent Automation & Integrations for Forms, CRM, eCommerce, Google Sheets, and More | 77 | 18 | 20 | 2k+ | wp function not compatible with requires wp | ||
| #844 | RSS Aggregator by Feedzy – Feed to Post, Autoblogging, News & YouTube Video Feeds Aggregator | 77 | 37 | 282 | 40k+ | Non-prefixed global variable | ||
| #845 | Index WP Users For Speed | 77 | 10 | 35 | 1k+ | Non-prefixed global variable | ||
| #846 | SureRank SEO – Smart Assistant with Meta Tags, Social Preview, XML Sitemap, and Schema | 77 | 58 | 94 | 300k+ | Non-prefixed hook name | ||
| #847 | Template Kit – Import | 77 | 41 | 60 | 400k+ | Non-prefixed global variable | ||
| #848 | Related Products Manager for WooCommerce | 79 | 9 | 43 | 1k+ | Non-prefixed global variable | ||
| #849 | New Relic Reporting for WordPress | 79 | 4 | 16 | 600 | Nonce verification recommended | ||
| #850 | Interlinks Manager – Internal Links Optimizer | 80 | 17 | 13 | 8k+ | Database parameter is not escaped |