WordPress.WP.AlternativeFunctions.curl_curl_exec
curl curl exec
The plugin uses raw cURL functions instead of the WordPress HTTP API.
Why It Shows Up
Plugin Check found `curl_*` calls in plugin code.
Why It Matters
The WordPress HTTP API handles transports, proxies, SSL behavior, filters, and host compatibility more consistently than raw cURL.
How to Fix
- Replace simple cURL requests with `wp_remote_get()` or `wp_remote_post()`.
- Handle `WP_Error`, status codes, timeouts, and response body parsing explicitly.
- If a bundled library uses cURL internally, keep it isolated and avoid passing unchecked user input into requests.
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #351 | Omise Payments | 26 | 358 | 256 | 2k+ | Output is not escaped | ||
| #352 | Online Contact Widget-多合一在线客服插件 | 26 | 708 | 80 | 800 | Non Singular String Literal Domain | ||
| #353 | Barion Payment Gateway for WooCommerce | 26 | 71 | 221 | 6k+ | Non-prefixed global variable | ||
| #354 | Pressidium Cookie Consent | 26 | 203 | 95 | 10k+ | Exception output is not escaped | ||
| #355 | Related Posts Thumbnails Plugin for WordPress | 26 | 382 | 198 | 20k+ | Output is not escaped | ||
| #356 | User Avatar | 26 | 104 | 173 | 4k+ | Non-prefixed constant | ||
| #357 | User Submitted Posts – Enable Users to Submit Posts from the Front End | 26 | 699 | 396 | 10k+ | Text Domain Mismatch | ||
| #358 | Parcel Pro | 26 | 171 | 220 | 600 | Output is not escaped | ||
| #359 | WP Flashy Marketing Automation | 26 | 432 | 186 | 2k+ | Text Domain Mismatch | ||
| #360 | Duplicate Post | 27 | 447 | 274 | 300k+ | Unsafe printing function | ||
| #361 | CM Tooltip Glossary | 27 | 611 | 188 | 7k+ | Output is not escaped | ||
| #362 | Foxtool All-in-One: Contact chat button, Custom login, Media optimize images | 27 | 1,629 | 360 | 7k+ | Unsafe printing function | ||
| #363 | Login for Google Apps | 27 | 139 | 85 | 10k+ | Exception output is not escaped | ||
| #364 | Gravity Forms + Stripe | 27 | 368 | 210 | 600 | Output is not escaped | ||
| #365 | GSpeech TTS – WordPress Text To Speech Plugin | 27 | 842 | 333 | 3k+ | Output is not escaped | ||
| #366 | iQ Block Country | 27 | 164 | 245 | 20k+ | Request data is not unslashed | ||
| #367 | Online Booking & Scheduling Calendar for WordPress by vcita | 27 | 473 | 161 | 1k+ | Output is not escaped | ||
| #368 | Nextend Social Login and Register | 27 | 1,668 | 243 | 200k+ | Output is not escaped | ||
| #369 | Robokassa payment gateway for Woocommerce | 27 | 95 | 211 | 3k+ | Non-prefixed global variable | ||
| #370 | Sign-up Sheets | 27 | 325 | 363 | 1k+ | Output is not escaped | ||
| #371 | Simple Download Monitor | 27 | 218 | 273 | 20k+ | Output is not escaped | ||
| #372 | Speed Booster Pack ⚡ PageSpeed Optimization Suite | 27 | 108 | 187 | 9k+ | Missing Translators Comment | ||
| #373 | Stream Video Player | 27 | 220 | 135 | 600 | Output is not escaped | ||
| #374 | Transbank Webpay | 27 | 198 | 211 | 10k+ | Non-prefixed global variable | ||
| #375 | Under Construction, Coming Soon & Maintenance Mode | 27 | 401 | 148 | 10k+ | Output is not escaped | ||
| #376 | Whols – Wholesale Prices and B2B Store Solution for WooCommerce | 27 | 228 | 235 | 2k+ | Output is not escaped | ||
| #377 | WPBase Cache | 27 | 189 | 113 | 2k+ | Text Domain Mismatch | ||
| #378 | AForms — Form Builder for Price Calculator & Cost Estimation | 28 | 564 | 95 | 3k+ | Text Domain Mismatch | ||
| #379 | Void Contact Form 7 Widget For Elementor Page Builder | 28 | 279 | 66 | 10k+ | Text Domain Mismatch | ||
| #380 | Expand Divi | 28 | 91 | 100 | 1k+ | Non-prefixed global variable | ||
| #381 | Friends | 28 | 164 | 670 | 1k+ | Non-prefixed global variable | ||
| #382 | گیتلند | درگاه پرداخت هوشمند گیتلند | 28 | 327 | 235 | 2k+ | Output is not escaped | ||
| #383 | GTmetrix for WordPress | 28 | 109 | 70 | 8k+ | Output is not escaped | ||
| #384 | Kama Thumbnail | 28 | 80 | 47 | 9k+ | Output is not escaped | ||
| #385 | Laposta Signup Basic | 28 | 276 | 67 | 2k+ | Output is not escaped | ||
| #386 | WP to LinkedIn Auto Publish | 28 | 734 | 250 | 900 | Unsafe printing function | ||
| #387 | درگاه پرداخت بانک ملت ووکامرس | 28 | 61 | 130 | 2k+ | Request data is not unslashed | ||
| #388 | My auctions allegro | 28 | 483 | 235 | 500 | Non Singular String Literal Domain | ||
| #389 | Notification for Telegram | 28 | 189 | 93 | 4k+ | Output is not escaped | ||
| #390 | ووکامرس فارسی | 28 | 157 | 215 | 90k+ | Output is not escaped | ||
| #391 | افزونه حمل و نقل ووکامرس | پست پیشتاز، تیپاکس و پیک موتوری | 28 | 131 | 190 | 20k+ | Missing nonce verification | ||
| #392 | PHP Browser Detection | 28 | 68 | 49 | 600 | Non-prefixed function | ||
| #393 | Podcast Importer SecondLine | 28 | 356 | 169 | 4k+ | Text Domain Mismatch | ||
| #394 | PushAlert – Web Push Notifications for WordPress and WooCommerce | 28 | 196 | 63 | 1k+ | curl curl setopt | ||
| #395 | Redis Object Cache | 28 | 151 | 103 | 400k+ | Exception output is not escaped | ||
| #396 | PayZen for WooCommerce | 28 | 258 | 214 | 600 | Output is not escaped | ||
| #397 | WP Mapbox GL JS Maps | 28 | 104 | 119 | 1k+ | Output is not escaped | ||
| #398 | Connect Matomo – Analytics Dashboard for WordPress | 28 | 100 | 102 | 60k+ | Missing Translators Comment | ||
| #399 | WhyDonate – FREE Donate button – Crowdfunding – Fundraising | 28 | 216 | 328 | 800 | Non-prefixed global variable | ||
| #400 | WP YouTube Lyte | 28 | 204 | 178 | 30k+ | Non-prefixed global variable |