WordPress.Security.EscapeOutput.OutputNotEscaped
Output is not escaped
Dynamic data is printed to the page without an escaping function for the output context.
Why It Shows Up
WordPress Coding Standards detected a variable, option, request value, or function result reaching HTML output without a nearby escaping call.
Why It Matters
Unescaped output can become cross-site scripting when attackers control any part of the value being printed.
How to Fix
- Use `esc_html()` for plain text, `esc_attr()` for attributes, and `esc_url()` for URLs.
- Use `wp_kses()` or `wp_kses_post()` when limited HTML is intentionally allowed.
- Escape as late as possible, right before output, so the selected escaping function matches the final context.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #2501 | Tapfiliate | 35 | 35 | 49 | 400 | Nonce verification recommended | ||
| #2502 | TBThemes Theme Import | 35 | 84 | 48 | 400 | Text Domain Mismatch | ||
| #2503 | TC Custom JavaScript | 35 | 19 | 26 | 10k+ | Missing Version | ||
| #2504 | Team Showcase – Responsive Team Members Grid, Slider & Carousel Plugin | 35 | 1,000 | 410 | 2k+ | Text Domain Mismatch | ||
| #2505 | Teamleader CRM Forms | 35 | 150 | 30 | 500 | Non Singular String Literal Domain | ||
| #2506 | Starter Sites & Templates by Neve | 35 | 28 | 88 | 100k+ | Non-prefixed hook name | ||
| #2507 | Termageddon: Cookie Consent & Privacy Compliance | 35 | 27 | 13 | 7k+ | Exception output is not escaped | ||
| #2508 | Advance Product Search- Voice & Ajax Search for WooCommerce | 35 | 125 | 92 | 10k+ | Text Domain Mismatch | ||
| #2509 | The Social Links | 35 | 16 | 29 | 2k+ | Non-prefixed global variable | ||
| #2510 | Theme Blvd Layout Builder | 35 | 207 | 169 | 2k+ | Output is not escaped | ||
| #2511 | ThemeRain Core | 35 | 69 | 61 | 1k+ | Text Domain Mismatch | ||
| #2512 | Themify Audio Dock | 35 | 22 | 9 | 900 | Non-prefixed global variable | ||
| #2513 | Themify Icons | 35 | 33 | 12 | 3k+ | Output is not escaped | ||
| #2514 | Themify Shortcodes | 35 | 36 | 16 | 7k+ | Output is not escaped | ||
| #2515 | Thumbnail Editor | 35 | 187 | 68 | 600 | wp function not compatible with requires wp | ||
| #2516 | TinyMCE Templates | 35 | 41 | 27 | 20k+ | Text Domain Mismatch | ||
| #2517 | Tockify Events Calendar | 35 | 35 | 12 | 2k+ | Output is not escaped | ||
| #2518 | Transcoder | 35 | 42 | 111 | 400 | Non-prefixed function | ||
| #2519 | TS Webfonts for さくらのレンタルサーバ | 35 | 183 | 100 | 30k+ | Missing Arg Domain | ||
| #2520 | Two Factor Authentication | 35 | 108 | 139 | 20k+ | Output is not escaped | ||
| #2521 | uCalc | 35 | 78 | 8 | 600 | Text Domain Mismatch | ||
| #2522 | Ultimate Post List | 35 | 186 | 84 | 2k+ | Missing Arg Domain | ||
| #2523 | Uptime Robot Plugin for WordPress | 35 | 398 | 324 | 600 | Text Domain Mismatch | ||
| #2524 | Use Google Libraries | 35 | 13 | 5 | 10k+ | Hidden files included | ||
| #2525 | User Photo | 35 | 112 | 68 | 3k+ | Output is not escaped | ||
| #2526 | UTM for Woocommerce | 35 | 14 | 4 | 800 | Output is not escaped | ||
| #2527 | Embed videos and respect privacy | 35 | 6 | 11 | 2k+ | Non-prefixed global variable | ||
| #2528 | Video Grid | 35 | 253 | 106 | 1k+ | Output is not escaped | ||
| #2529 | Video Gallery | 35 | 336 | 178 | 600 | Output is not escaped | ||
| #2530 | Void Elementor Post Grid Addon for Elementor Page builder | 35 | 189 | 93 | 3k+ | Text Domain Mismatch | ||
| #2531 | Voyapp Chile – Lugares y Cotizador de Despachos | 35 | 225 | 84 | 400 | Output is not escaped | ||
| #2532 | W4 Post List | 35 | 50 | 138 | 3k+ | Non-prefixed global variable | ||
| #2533 | Walls.io: Social Media Feed | 35 | 10 | 7 | 1k+ | Hidden files included | ||
| #2534 | WC Cancel Order | 35 | 52 | 122 | 5k+ | Non-prefixed hook name | ||
| #2535 | Deliver via Shipos for WooCommerce | 35 | 11 | 78 | 600 | Nonce verification recommended | ||
| #2536 | ShipStation Live Rates for WooCommerce | 35 | 402 | 73 | 900 | Non Singular String Literal Domain | ||
| #2537 | Spreadconnect | 35 | 128 | 126 | 700 | Output is not escaped | ||
| #2538 | WC Ukraine Shipping – Integration of Nova Poshta and Ukrposhta for WooCommerce | 35 | 504 | 164 | 7k+ | Text Domain Mismatch | ||
| #2539 | Webflow Pages | 35 | 36 | 63 | 2k+ | Non Singular String Literal Domain | ||
| #2540 | WEDOS OnLine monitoring | 35 | 36 | 15 | 700 | Output is not escaped | ||
| #2541 | wePOS – Point Of Sale (POS) for WooCommerce & Dokan | 35 | 47 | 66 | 2k+ | Output is not escaped | ||
| #2542 | What The File | 35 | 9 | 12 | 40k+ | Input is not sanitized | ||
| #2543 | Which Elementor Addon | 35 | 26 | 3 | 500 | Text Domain Mismatch | ||
| #2544 | Wild Apricot Login | 35 | 88 | 30 | 800 | Non Singular String Literal Domain | ||
| #2545 | Wired Impact Volunteer Management | 35 | 253 | 175 | 1k+ | Output is not escaped | ||
| #2546 | Open Graph and Twitter Card Tags | 35 | 15 | 27 | 50k+ | error log error log | ||
| #2547 | ALD – Dropshipping and Fulfillment for AliExpress and WooCommerce | 35 | 51 | 344 | 10k+ | Request data is not unslashed | ||
| #2548 | CardCom Payment Gateway | 35 | 201 | 84 | 3k+ | Text Domain Mismatch | ||
| #2549 | Sola Payment Gateway for WooCommerce | 35 | 107 | 116 | 700 | Missing Translators Comment | ||
| #2550 | WP Courseware for WooCommerce | 35 | 55 | 49 | 1k+ | Text Domain Mismatch |