WordPress.Security.EscapeOutput.HeredocOutputNotEscaped

Heredoc Output Not Escaped

A value reaches browser output without clear escaping for the final HTML context.

critical weight

Why It Shows Up

The scan found output where WordPress Coding Standards could not see `esc_html()`, `esc_attr()`, `esc_url()`, `wp_kses()`, or another context-appropriate escaping function.

Why It Matters

When dynamic data is printed raw, any user-controlled part of that data can become cross-site scripting.

How to Fix

  • Use `esc_html()` for text nodes, `esc_attr()` for attributes, and `esc_url()` for URLs.
  • Use `wp_kses()` when limited HTML is allowed.
  • Escape late, right before output, so the escaping function matches the final context.

Affected Plugins

RankPluginScoreErrorsWarningsInstallsAddedUpdatedTop Issue
#1JetBackup – Backup, Restore & Migrate101,567156200k+Exception output is not escaped
#2AnyComment174454495k+Output is not escaped
#3Administrator Z182,061799400Output is not escaped
#4Matomo Analytics – Powerful, Privacy-First Insights for WordPress191,900877100k+Exception output is not escaped
#5SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments195331,15080k+Non-prefixed global variable
#6Broadstreet20434273800Output is not escaped
#7Post Form – Registration Form – Profile Form for User Profiles – Frontend Content Forms for User Submissions (UGC)207362,112900Non-prefixed global variable
#8JCH Optimize212,2922774k+Output is not escaped
#9Oasis Workflow21775575700Text Domain Mismatch
#10Seraphinite Accelerator2159225850k+Output is not escaped
#11Professional Social Sharing Buttons, Icons & Related Posts – Shareaholic2132718110k+Output is not escaped
#12Revive Social – Social Media Auto Post and Scheduling Automation Plugin2125643120k+Non-prefixed hook name
#13Wordfence Security – Firewall, Malware Scan, and Login Security211,8183,2365m+Output is not escaped
#14Contest Gallery – Upload & Vote Photos, Media, Sell with PayPal & Stripe229,63427,6421k+Non-prefixed global variable
#15RegistrationMagic – Custom Registration Forms, User Registration, Payment, and User Login223,6555,1508k+Non-prefixed global variable
#16Diverse Solutions IDX Real Estate Listings & MLS Search227456051k+Heredoc Output Not Escaped
#17Dynamic QR Code – generator222382085k+Missing direct file access protection
#18Slim Jetpack222,5861,9472k+Text Domain Mismatch
#19WP Super Minify • Minify, Compress and Cache HTML, CSS & JavaScript221642579k+Non-prefixed constant
#20ЮKassa для WooCommerce225911679k+Short PHP open tag found
#21Fastcache by Host.it231,3272071k+Text Domain Mismatch
#22Clone2324426240k+Output is not escaped
#23Youzify – BuddyPress Community, User Profile, Social Network & Membership Plugin for WordPress232,3171,7145k+Output is not escaped
#24TermsFeed AutoTerms: Privacy Policy Generator, Cookie Consent, GDPR, CCPA, Terms & Conditions, Disclaimers, Cookies Policy, EULA2493916170k+Non Singular String Literal Domain
#25Democracy Poll243834477k+Short PHP open tag found
#26Gutenberg Essential Blocks – Page Builder for Gutenberg Blocks & Patterns24115706200k+Non-prefixed global variable
#27Gutenberg24638329300k+Missing direct file access protection
#28Page Builder: Pagelayer – Drag and Drop website builder24829569400k+Output is not escaped
#29Podlove Podcast Publisher242,1071,3993k+Output is not escaped
#30SEO Ultimate2443726910k+Output is not escaped
#31WCMultiShipping — Mondial Relay, Inpost & Chronopost for WooCommerce247334995k+Output is not escaped
#32European VAT Compliance Assistant for WooCommerce245153173k+Output is not escaped
#33WPSpeed – WordPress Speed, Cache & Performance Optimization (Core Web Vitals, PageSpeed 100)244821892k+Output is not escaped
#34Lean Player – Video and Audio Player with Playlist for WordPress, Elementor and Gutenberg252,4922,0812k+Non-prefixed global variable
#35Genesis Club Lite25513317900Output is not escaped
#36VikAppointments Services Booking Calendar259,7595,209500Output is not escaped
#37VikRestaurants Table Reservations and Take-Away2511,6444,932600Output is not escaped
#38My auctions allegro26484258500Non Singular String Literal Domain
#39Crowdsignal Dashboard – Polls, Surveys & more26481491200k+Unsafe printing function
#40Online Lesson Booking27978281500Non Singular String Literal Domain
#41ووکامرس فارسی28157215100k+Output is not escaped
#42WP Job Manager289458870k+Non-prefixed hook name
#43افزونه حمل و نقل ووکامرس | پست پیشتاز، تیپاکس و پیک موتوری2913017520k+Missing Arg Domain
#44WP Google Analytics Events – No-Code Custom Event Tracking for Google Analytics291181285k+Output is not escaped
#45Post and Page Builder by BoldGrid – Visual Drag and Drop Editor3135325350k+Text Domain Mismatch
#46Speed Kit32296732k+Output is not escaped
#47Showcase IDX Real Estate Search & Lead Capture32123522k+Output is not escaped
#48WP fail2ban – Advanced Security327515360k+Dynamic hook name
#49wpDirAuth32250135500wp function not compatible with requires wp
#50IP2Location Redirection332011277k+Output is not escaped