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 |
|---|---|---|---|---|---|---|---|---|
| #2751 | Optimize Database after Deleting Revisions | 36 | 644 | 127 | 60k+ | Output is not escaped | ||
| #2752 | Search & Replace | 36 | 50 | 53 | 100k+ | Missing nonce verification | ||
| #2753 | Search Everything | 36 | 165 | 77 | 10k+ | Text Domain Mismatch | ||
| #2754 | Shadowbox JS | 36 | 246 | 14 | 1k+ | Unsafe printing function | ||
| #2755 | ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution | 36 | 63 | 669 | 100k+ | Non-prefixed global variable | ||
| #2756 | Snippet Shortcodes | 36 | 380 | 149 | 4k+ | Non Singular String Literal Domain | ||
| #2757 | Simple Banner – Easily add multiple Banners/Bars/Notifications/Announcements to the top or bottom of your website | 36 | 216 | 50 | 50k+ | Output is not escaped | ||
| #2758 | StaticPress | 36 | 88 | 79 | 500 | Output is not escaped | ||
| #2759 | Stripe Tax – Sales tax automation for WooCommerce | 36 | 97 | 61 | 30k+ | Exception output is not escaped | ||
| #2760 | Subscribe to Comments | 36 | 129 | 163 | 10k+ | Output is not escaped | ||
| #2761 | Supplier Order Email | 36 | 54 | 105 | 400 | Output is not escaped | ||
| #2762 | Supreme Modules Lite – Divi Theme, Extra Theme and Divi Builder | 36 | 162 | 40 | 200k+ | Output is not escaped | ||
| #2763 | SureContact – Newsletters, Email Marketing, Automation, Revenue Tracking & CRM | 36 | 314 | 132 | 7k+ | Text Domain Mismatch | ||
| #2764 | Sync QCloud COS | 36 | 63 | 109 | 600 | Non-prefixed function | ||
| #2765 | Bulk Product Editor plugin allows you to create and edit your WooCommerce products and categories with Google Sheets. | 36 | 50 | 105 | 400 | Direct Query | ||
| #2766 | Advance Side Cart, Ajax Cart & Floating Cart for WooCommerce | 36 | 37 | 121 | 6k+ | Non-prefixed global variable | ||
| #2767 | The Events Calendar Shortcode & Block | 36 | 70 | 127 | 10k+ | Non-prefixed hook name | ||
| #2768 | Toolbox for Asgaros Forum | 36 | 150 | 84 | 1k+ | Output is not escaped | ||
| #2769 | Plugin Name: Traffic Counter Widget Plugin | 36 | 71 | 107 | 600 | Output is not escaped | ||
| #2770 | Zoho ZeptoMail | 36 | 32 | 110 | 5k+ | Request data is not unslashed | ||
| #2771 | TrustMate.io – WooCommerce integration | 36 | 255 | 101 | 3k+ | Output is not escaped | ||
| #2772 | FOMO & Social Proof Notifications by TrustPulse – Best WordPress FOMO Plugin | 36 | 104 | 39 | 10k+ | Output is not escaped | ||
| #2773 | Ubigeo de Perú para Woocommerce y WordPress | 36 | 191 | 235 | 4k+ | Non-prefixed function | ||
| #2774 | Uji Countdown | 36 | 284 | 98 | 4k+ | Text Domain Mismatch | ||
| #2775 | Slider Ultimate | 36 | 294 | 80 | 500 | Output is not escaped | ||
| #2776 | underConstruction | 36 | 98 | 60 | 40k+ | Unsafe printing function | ||
| #2777 | PDF Flipbook, WPBakery Addon – Unreal FlipBook | 36 | 400 | 92 | 1k+ | Non Singular String Literal Domain | ||
| #2778 | User Roles and Capabilities | 36 | 227 | 132 | 8k+ | Output is not escaped | ||
| #2779 | Video Thumbnails Reloaded | 36 | 343 | 58 | 2k+ | Text Domain Mismatch | ||
| #2780 | VK Post Author Display | 36 | 87 | 113 | 10k+ | Non-prefixed function | ||
| #2781 | W4 Post List | 36 | 49 | 137 | 3k+ | Non-prefixed global variable | ||
| #2782 | Wanderlust OCA para WooCommerce | 36 | 157 | 55 | 500 | Text Domain Mismatch | ||
| #2783 | WC Builder – WooCommerce Page Builder for WPBakery | 36 | 647 | 50 | 1k+ | Text Domain Mismatch | ||
| #2784 | Out of Stock Message Manager for WooCommerce | 36 | 293 | 95 | 2k+ | Text Domain Mismatch | ||
| #2785 | WC Pickup Store | 36 | 245 | 52 | 2k+ | Output is not escaped | ||
| #2786 | Quantity Plus Minus Button for WooCommerce | 36 | 83 | 84 | 10k+ | Output is not escaped | ||
| #2787 | Conditional Payments and Shipping for WooCommerce | 36 | 337 | 27 | 1k+ | Text Domain Mismatch | ||
| #2788 | Shipping with Venipak for WooCommerce | 36 | 239 | 61 | 1k+ | Text Domain Mismatch | ||
| #2789 | When Last Login | 36 | 52 | 123 | 50k+ | Non-prefixed global variable | ||
| #2790 | Widget Indicadores Económicos (Chile) | 36 | 53 | 20 | 500 | Output is not escaped | ||
| #2791 | Disable Payment Methods based on cart conditions for WooCommerce | 36 | 158 | 57 | 1k+ | Non Singular String Literal Domain | ||
| #2792 | Custom Add to Cart Button Label and Link for WooCommerce | 36 | 371 | 112 | 3k+ | Text Domain Mismatch | ||
| #2793 | Guaranteed Reviews Company (Société des Avis Garantis) | 36 | 369 | 197 | 1k+ | Output is not escaped | ||
| #2794 | Viva Payments – Viva Wallet WooCommerce Payment Gateway | 36 | 97 | 32 | 1k+ | Non Singular String Literal Domain | ||
| #2795 | Rabo Smart Pay for WooCommerce | 36 | 150 | 55 | 600 | Text Domain Mismatch | ||
| #2796 | Extended Coupon Features for WooCommerce FREE | 36 | 219 | 63 | 10k+ | Text Domain Mismatch | ||
| #2797 | CatalogX – Catalog Mode, Enquiry & Quotes for WooCommerce | 36 | 165 | 69 | 5k+ | Text Domain Mismatch | ||
| #2798 | Eway Payments for Woo | 36 | 525 | 40 | 3k+ | Text Domain Mismatch | ||
| #2799 | SuperFaktura WooCommerce | 36 | 60 | 116 | 2k+ | Nonce verification recommended | ||
| #2800 | Hide admin notices – Admin Notification Center | 36 | 114 | 67 | 8k+ | Output is not escaped |