[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f4LIcrqzZZ2Egl2iwSVQjXNLf1e1Dp70VcznMVWI0VzE":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":40,"analysis":151,"fingerprints":503},"visual-regression-tests","VRTs – Visual Regression Tests","2.0.5","Bleech","https:\u002F\u002Fprofiles.wordpress.org\u002Fbleechberlin\u002F","\u003Cp>Find issues before others do – every time. With automatic screenshots, daily comparisons, and instant tests after WordPress and plugin updates. Select the pages of your choice for continuous monitoring. The plugin immediately notifies you of any visual changes it detects.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Please note:\u003C\u002Fstrong> The website must be publicly accessible in order to set up and run the tests. Password protection or any kind of firewall might prevent the plugin from working correctly.\u003C\u002Fp>\n\u003Ch4>Your strategy to spot unwanted changes\u003C\u002Fh4>\n\u003Cp>How do you check your website after updates and code changes? Do you manually go through pages, or do you just cross your fingers, hoping everything will be okay? Visual regression testing provides a better way to spot issues and detect visual changes. The VRTs plugin automates testing for you with a click of a button.\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Activate tests for any page or post:\u003C\u002Fstrong> Upon activation, a reference screenshot is taken. This will be renewed when a post is saved or updated.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>VRTs monitors your pages:\u003C\u002Fstrong> Every day, VRTs captures and compares screenshots of your selected pages. Upgrade to Pro to automate tests for WordPress updates, integrate deployment pipelines via API, and run manual tests on demand.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Receive instant alerts:\u003C\u002Fstrong> If a change is detected between the snapshot and the comparison screenshot, the plugin will notify you via email.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Review changes:\u003C\u002Fstrong> The difference view makes it easy to spot changes, while the comparison slider lets you inspect the details.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Hide elements:\u003C\u002Fstrong> Prevent false positives by excluding dynamic elements, ads, and animations from snapshots.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Use cases\u003C\u002Fh4>\n\u003Cp>In which cases can visual regression testing help you spot issues?\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Plugin and core software updates\u003C\u002Fli>\n\u003Cli>Manual code changes\u003C\u002Fli>\n\u003Cli>External software and API issues\u003C\u002Fli>\n\u003Cli>Server issues\u003C\u002Fli>\n\u003Cli>Malware and other malicious code\u003C\u002Fli>\n\u003Cli>Missing quality assurance\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>No Setup:\u003C\u002Fstrong> After plugin activation, the frontpage is immediately monitored and alerts are sent to the WordPress admin email.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Daily Tests:\u003C\u002Fstrong> The plugin monitors selected posts and pages and compares screenshots daily.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Hide Elements:\u003C\u002Fstrong> Hide dynamic or irrelevant elements to prevent false positives in your tests.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Click Element:\u003C\u002Fstrong> Define an element that should be clicked before taking a screenshot. This is useful for closing cookie banners or modals.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Email Notifications:\u003C\u002Fstrong> As soon as a change is detected between the snapshot and the comparison screenshot, you will be notified via email.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Fullscreen Review:\u003C\u002Fstrong> Inspect changes up close using the difference view and comparison slider in fullscreen mode.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Read \u002F Unread:\u003C\u002Fstrong> Keep track of test results that require further attention by marking alerts as unread.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Flag False Positives:\u003C\u002Fstrong> Identify acceptable changes or non-issues to minimize unnecessary notifications.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Update Automation (Pro):\u003C\u002Fstrong> Automatically trigger tests on WordPress core, plugin, theme, or language updates and catch any issues right away.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Manual Testing (Pro):\u003C\u002Fstrong> Run tests manually on demand, either for all configured pages or for specific pages, to verify any changes or global edits immediately.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>API Integration (Pro):\u003C\u002Fstrong> Trigger tests via PHP scripts or WP CLI for integration with other tools, deployment pipelines, or custom automations.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Customizable Notifications (Pro):\u003C\u002Fstrong> Specify email addresses for each trigger, to set up notifications for various teams or stakeholders.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Free forever\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Test up to \u003Cstrong>3 pages\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>On \u003Cstrong>one\u003C\u002Fstrong> domain\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Automatic daily\u003C\u002Fstrong> tests\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Go Pro\u003C\u002Fh4>\n\u003Cp>Do you like VRTs and want to run more tests?\u003Cbr \u002F>\nUnlock more features with our paid plans:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Test up to \u003Cstrong>500 pages\u003C\u002Fstrong> in total\u003C\u002Fli>\n\u003Cli>On \u003Cstrong>multiple\u003C\u002Fstrong> domains\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Scheduled daily\u003C\u002Fstrong> tests\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multiple\u003C\u002Fstrong> alert recipient groups by alert type\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Manual tests\u003C\u002Fstrong> (unlimited)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>API access\u003C\u002Fstrong> (unlimited) \u003Ca href=\"https:\u002F\u002Fvrts.app\u002Fdocs\u002F\" rel=\"nofollow ugc\">Read the docs.\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Automatic tests\u003C\u002Fstrong> after WordPress updates, plugin updates and plugin installations\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fvrts.app\u002Fpricing\u002F\" rel=\"nofollow ugc\">See pricing plans\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Bug reports\u003C\u002Fh4>\n\u003Cp>You found a bug? Please report it by creating an issue on the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fvisual-regression-tests\u002F\" rel=\"ugc\">support forum\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Read more\u003C\u002Fh4>\n\u003Cp>Want to learn more about VRTs?\u003Cbr \u002F>\nVisit our website: \u003Ca href=\"https:\u002F\u002Fvrts.app\u002F\" rel=\"nofollow ugc\">vrts.app\u003C\u002Fa>\u003C\u002Fp>\n","Keep your WordPress websites bug-free with automatic screenshots, daily comparisons, and instant tests after WordPress and plugin updates.",900,15494,92,9,"2025-07-21T13:23:00.000Z","6.7.5","5.0","7.0",[20,21,22,23,24],"regression","tests","visual","visual-regression","vrts","https:\u002F\u002Fvrts.app\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fvisual-regression-tests.2.0.5.zip",100,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":35,"avg_security_score":36,"avg_patch_time_days":37,"trust_score":38,"computed_at":39},"bleechberlin",2,2900,96,30,91,"2026-04-04T09:24:20.023Z",[41,62,88,109,129],{"slug":42,"name":43,"version":44,"author":45,"author_profile":46,"description":47,"short_description":48,"active_installs":49,"downloaded":50,"rating":28,"num_ratings":28,"last_updated":51,"tested_up_to":52,"requires_at_least":53,"requires_php":54,"tags":55,"homepage":59,"download_link":60,"security_score":61,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"diffy","Diffy Visual Regression Testing","0.9.6","Yuriy Gerasymov","https:\u002F\u002Fprofiles.wordpress.org\u002Fygerasimov\u002F","\u003Cp>Diffy helps to verify plugin updates by taking screenshots of your site before and after update and comparing them.\u003C\u002Fp>\n\u003Cp>Ideally you expect zero changes after running updates.\u003C\u002Fp>\n\u003Ch3>Set up instructions\u003C\u002Fh3>\n\u003Cp>You need to have active Diffy (https:\u002F\u002Fdiffy.website) account in order to use this plugin. Plugin will also allow you to create an account and project for your site with one click.\u003C\u002Fp>\n\u003Cp>Diffy provides 2 weeks trial to cover up to 100 pages of your site.\u003C\u002Fp>\n\u003Cp>Your site should be publicly available. Diffy runs workers from AWS infrastructure by using single IP address 3.216.56.216. Whitelist it if needed.\u003C\u002Fp>\n\u003Cp>Once you registered an account, please create a project. You need to specify your site’s URL as Production environment. Add your site’s URLs to the project. Diffy can parse sitemaps if you like. Meanwhile you will want to have just key pages covered by visual regression testing and not every page of your site.\u003C\u002Fp>\n\u003Cp>After setting up the project, generate API key under My Account -> Keys.\u003C\u002Fp>\n\u003Cp>Enter project id and API Key to Diffy’s plugin settings page and you should be good to go.\u003C\u002Fp>\n\u003Ch3>How it works?\u003C\u002Fh3>\n\u003Cp>During plugins update process plugin will call Diffy via API to create set of screenshots before the update. Expect that it will make update process longer.\u003C\u002Fp>\n\u003Cp>After screenshots are ready update process will continue. Once updates are completed plugin will call Diffy once again to create second set of screenshots and compare them with your “before” version.\u003C\u002Fp>\n\u003Cp>You will receive an email notifications about screenshots and diffs being completed.\u003C\u002Fp>\n\u003Cp>Review the report and ensure that nothing got broken.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>Welcome to reach out to Diffy’s team via Intercom or by email info@diffy.website.\u003C\u002Fp>\n","Diffy helps to verify plugin updates by taking screenshots of your site before and after update and comparing them. Ideally you expect zero changes a &hellip;",10,1368,"2023-03-01T21:29:00.000Z","6.1.10","4.8","7.1",[56,57,58],"automated-testing","updates-verification","visual-regression-testing","https:\u002F\u002Fdiffy.website\u002Fwordpress","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdiffy.zip",85,{"slug":63,"name":64,"version":65,"author":66,"author_profile":67,"description":68,"short_description":69,"active_installs":70,"downloaded":71,"rating":36,"num_ratings":72,"last_updated":73,"tested_up_to":74,"requires_at_least":75,"requires_php":76,"tags":77,"homepage":83,"download_link":84,"security_score":85,"vuln_count":86,"unpatched_count":28,"last_vuln_date":87,"fetched_at":30},"siteorigin-panels","Page Builder by SiteOrigin","2.34.0","Greg - SiteOrigin","https:\u002F\u002Fprofiles.wordpress.org\u002Fgpriday\u002F","\u003Cp>SiteOrigin Page Builder is a powerful content creation interface, instantly recognizable, astonishingly different. SiteOrigin Page Builder makes it easy to create responsive column-based content using the widgets you know and love. Your content will accurately adapt to all mobile devices, ensuring your site is mobile-ready. Read more on \u003Ca href=\"https:\u002F\u002Fsiteorigin.com\u002Fpage-builder\u002F\" rel=\"nofollow ugc\">SiteOrigin\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>We’ve created an intuitive interface that looks just like WordPress itself. It’s easy to learn, so you’ll be building beautiful, responsive content in no time.\u003C\u002Fp>\n\u003Cdiv class=\"embed-vimeo\" style=\"text-align: center;\">\u003Ciframe loading=\"lazy\" src=\"https:\u002F\u002Fplayer.vimeo.com\u002Fvideo\u002F114529361\" width=\"750\" height=\"422\" frameborder=\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen>\u003C\u002Fiframe>\u003C\u002Fdiv>\n\u003Cp>Page Builder works with standard WordPress widgets, so you’ll always find the widget you need. We’ve created the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fso-widgets-bundle\u002F\" rel=\"ugc\">SiteOrigin Widgets Bundle\u003C\u002Fa> to give you all the most common widgets, and with a world of plugins out there, you’ll always find the widget you need.\u003C\u002Fp>\n\u003Ch4>Ready to Be Used Anywhere\u003C\u002Fh4>\n\u003Cp>Choose your editor; Page Builder is ready to be used anywhere. Build in the traditional Page Builder interface or insert a Page Builder Layout into the Block Editor. Insert the SiteOrigin Layout Widget into sidebar and footer widget areas or use the SiteOrigin Layout Block in block-based widget areas.\u003C\u002Fp>\n\u003Ch4>It Works With Your Theme\u003C\u002Fh4>\n\u003Cp>Page Builder gives you complete freedom to choose any WordPress theme you like. It’s not a commitment to a single theme or theme developer. The advantage is that you’re free to change themes as often as you like. Your content will always come along with you.\u003C\u002Fp>\n\u003Cp>We’ve also made some fantastic \u003Ca href=\"https:\u002F\u002Fsiteorigin.com\u002Ftheme\u002F\" rel=\"nofollow ugc\">free themes\u003C\u002Fa> that work well with Page Builder.\u003C\u002Fp>\n\u003Ch4>No Coding Required\u003C\u002Fh4>\n\u003Cp>Page Builder’s simple drag and drop interface means you’ll never need to write a single line of code. Page Builder generates all the highly efficient code for you.\u003C\u002Fp>\n\u003Ch4>Live Editing\u003C\u002Fh4>\n\u003Cp>Page Builder supports live editing. This tool lets you see your content and edit widgets in real time. It’s the fastest way to adjust your content quickly and easily.\u003C\u002Fp>\n\u003Ch4>History Browser\u003C\u002Fh4>\n\u003Cp>This tool lets you roll forward and back through your changes. It gives you the freedom to experiment with different layouts and content without the fear of breaking your content.\u003C\u002Fp>\n\u003Ch4>Row, Cell, and Widget Styles\u003C\u002Fh4>\n\u003Cp>Row, cell, and widget styles give you all the control you need to make your content uniquely your own. Change attributes like paddings, background colors, and column spacing. You can also enter custom CSS and CSS classes if you need even finer-grained control.\u003C\u002Fp>\n\u003Ch4>Focussed on Performance\u003C\u002Fh4>\n\u003Cp>We’ve built a lightweight framework, focusing on small page sizes and fast load time. Page Builder is compatible with \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fautoptimize\u002F\" rel=\"ugc\">Autoptimize\u003C\u002Fa> and all other major performance plugins.\u003C\u002Fp>\n\u003Ch4>SEO Optimized\u003C\u002Fh4>\n\u003Cp>Page Builder uses modern SEO best practices and seamlessly integrates with all major SEO plugins, including Yoast SEO and Rank Math.\u003C\u002Fp>\n\u003Ch4>It’s Free, and Always Will Be\u003C\u002Fh4>\n\u003Cp>Page Builder is our commitment to the democratization of content creation. Like WordPress, Page Builder is, and always will be, free. We’ll continue supporting and developing it for many years to come. It’ll only get better from here.\u003C\u002Fp>\n\u003Ch4>Accessibility Ready\u003C\u002Fh4>\n\u003Cp>Page Builder is accessibility-ready. Tab through all form fields and settings, and make changes without a mouse.\u003C\u002Fp>\n\u003Ch4>Actively Developed\u003C\u002Fh4>\n\u003Cp>SiteOrigin has been creating magical tools for your WordPress website since 2011. Page Builder is actively developed with new features and exciting enhancements every month. Keep track on the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsiteorigin\u002Fsiteorigin-panels\" rel=\"nofollow ugc\">Page Builder GitHub repository\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Read the \u003Ca href=\"https:\u002F\u002Fsiteorigin.com\u002Fdocs\u002Fpage-builder\u002F\" rel=\"nofollow ugc\">Page Builder developer docs\u003C\u002Fa> if you’d like to develop for Page Builder.\u003C\u002Fp>\n\u003Ch3>Documentation\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fsiteorigin.com\u002Fpage-builder\u002Fdocumentation\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> is available on SiteOrigin.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>Free support is available on the \u003Ca href=\"https:\u002F\u002Fsiteorigin.com\u002Fthread\u002F\" rel=\"nofollow ugc\">SiteOrigin support forums\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>SiteOrigin Premium\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fsiteorigin.com\u002Fdownloads\u002Fpremium\u002F\" rel=\"nofollow ugc\">SiteOrigin Premium\u003C\u002Fa> enhances Page Builder by SiteOrigin, the SiteOrigin Widgets Bundle, and all SiteOrigin themes with a vast array of additional features and settings. Take your layouts to the next level with SiteOrigin Premium Addons.\u003C\u002Fp>\n\u003Cp>SiteOrigin Premium includes access to our professional email support service, perfect for those times when you need fast and effective technical support. We’re standing by to assist you in any way we can.\u003C\u002Fp>\n","Build responsive page layouts using the widgets you know and love using this simple drag and drop page builder.",500000,57359363,1004,"2026-02-21T19:44:00.000Z","6.9.4","4.7","7.0.0",[78,79,80,81,82],"drag-and-drop","page-builder","responsive-design","visual-editor","website-builder","https:\u002F\u002Fsiteorigin.com\u002Fpage-builder\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsiteorigin-panels.2.34.0.zip",88,8,"2026-03-02 13:14:54",{"slug":89,"name":90,"version":91,"author":92,"author_profile":93,"description":94,"short_description":95,"active_installs":96,"downloaded":97,"rating":36,"num_ratings":98,"last_updated":99,"tested_up_to":74,"requires_at_least":100,"requires_php":101,"tags":102,"homepage":107,"download_link":108,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"black-studio-tinymce-widget","Black Studio TinyMCE Widget","2.7.3","Black Studio","https:\u002F\u002Fprofiles.wordpress.org\u002Fblack-studio\u002F","\u003Cp>This plugin adds a new \u003Ccode>Visual Editor\u003C\u002Fcode> widget type that allows you to insert rich text and media objects in your sidebars with no hassle. With Black Studio TinyMCE Widget you will be able to edit your widgets in a WYSIWYG manner using the native WordPress TinyMCE editor, just like you do in posts and pages. And if you are a developer you may still switch back and forth from Visual to HTML mode.\u003C\u002Fp>\n\u003Cp>For years the default WordPress text widget has been very basic and it required HTML knowledge to add formatting and images\u002Fmedia to the text. This plugin was born in 2011 to overcome these limitations. After a long time, in June 2017, version 4.8 of WordPress finally introduced a new text widget that included the ability to manage text widgets with the visual editor. The new widget available in WordPress core could now be used as a basic replacement of Black Studio TinyMCE Widget, but the plugin still offers some additional features, so it remains a must-have for advanced users.\u003C\u002Fp>\n\u003Ch4>Basic Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Add rich text widgets to your sidebars and edit them using the TinyMCE visual editor\u003C\u002Fli>\n\u003Cli>Switch between Visual mode and HTML mode (including Quicktags toolbar)\u003C\u002Fli>\n\u003Cli>Insert images, videos, and other media from WordPress Media Library\u003C\u002Fli>\n\u003Cli>Insert links to existing WordPress pages\u002Fposts or external resources\u003C\u002Fli>\n\u003Cli>Support for shortcodes, smilies and embed in widget text (including preview)\u003C\u002Fli>\n\u003Cli>Support for the Block-based Widgets Editor introduced with WordPress 5.8\u003C\u002Fli>\n\u003Cli>Support for Customizer with live preview and quick edit\u003C\u002Fli>\n\u003Cli>Support for widgets accessibility mode\u003C\u002Fli>\n\u003Cli>Compatible with multi-site (WordPress networks)\u003C\u002Fli>\n\u003Cli>Compatible with the most common multi-language plugins\u003C\u002Fli>\n\u003Cli>Compatible with Page Builder plugin by SiteOrigin\u003C\u002Fli>\n\u003Cli>Translations available in 20+ languages\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Advanced Features\u003C\u002Fh4>\n\u003Cp>These features are what makes this plugin better than the WordPress (4.8+) native widget:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Full featured TinyMCE Visual Editor (the same you have for pages and posts)\u003C\u002Fli>\n\u003Cli>Wide text area for an enhanced editing experience\u003C\u002Fli>\n\u003Cli>Compatible with 3rd party TinyMCE customization plugins (TinyMCE Advanced, WP Edit, …)\u003C\u002Fli>\n\u003Cli>Support for distraction-free (fullscreen) editing mode \u003C\u002Fli>\n\u003Cli>Option to “Automatically add paragraphs” to widget text\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>About the plugin\u003C\u002Fh4>\n\u003Cp>The story of the plugin was featured in a talk at WordCamp Europe 2018 in Belgrade.\u003Cbr \u002F>\nSee the video \u003Ca href=\"https:\u002F\u002Fwordpress.tv\u002F2018\u002F07\u002F11\u002Ffrancesco-canovi-marco-chiesi-once-upon-a-time-there-was-a-plugin\u002F\" rel=\"nofollow ugc\">Once upon a time, there was a plugin…\u003C\u002Fa> on WordPress.tv.\u003C\u002Fp>\n\u003Ch4>Links\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.blackstudio.it\u002Fen\u002F\" rel=\"nofollow ugc\">Author’s web site\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.blackstudio.it\u002Fen\u002Fwordpress-plugins\u002Fblack-studio-tinymce-widget\u002F\" rel=\"nofollow ugc\">Plugin’s page\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fblack-studio-tinymce-widget\u002Ffaq\u002F\" rel=\"ugc\">FAQ\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fblack-studio-tinymce-widget\" rel=\"ugc\">Support forum\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Follow us on \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fblackstudioita\" rel=\"nofollow ugc\">Twitter\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fwww.facebook.com\u002Fblackstudiocomunicazione\" rel=\"nofollow ugc\">Facebook\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fblack-studio\" rel=\"nofollow ugc\">LinkedIn\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fblack-studio\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Get involved\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Developers can contribute to the source code on our \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fblack-studio\u002Fblack-studio-tinymce-widget\" rel=\"nofollow ugc\">GitHub repository\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Translators can contribute through the \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fblack-studio-tinymce-widget\" rel=\"nofollow ugc\">Official WordPress Translation platform\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Users can contribute by leaving a 5 stars \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fview\u002Fplugin-reviews\u002Fblack-studio-tinymce-widget#postform\" rel=\"ugc\">review\u003C\u002Fa> or making a \u003Ca href=\"https:\u002F\u002Fwww.blackstudio.it\u002Fen\u002Fwordpress-plugins\u002Fblack-studio-tinymce-widget\u002F\" rel=\"nofollow ugc\">donation\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n","The visual editor widget for WordPress.",200000,11110927,192,"2026-03-08T20:09:00.000Z","3.1","5.2",[103,104,22,105,106],"editor","tinymce","widget","wysiwyg","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fblack-studio-tinymce-widget\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fblack-studio-tinymce-widget.2.7.3.zip",{"slug":110,"name":111,"version":112,"author":66,"author_profile":67,"description":113,"short_description":114,"active_installs":115,"downloaded":116,"rating":117,"num_ratings":118,"last_updated":119,"tested_up_to":74,"requires_at_least":120,"requires_php":76,"tags":121,"homepage":127,"download_link":128,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"so-css","SiteOrigin CSS","1.6.5","\u003Cp>SiteOrigin CSS is the intuitive and powerful CSS editor designed to empower your WordPress site customization. Enjoy a seamless editing experience with real-time visual controls, making it easy to tweak your site’s look and feel instantly. Whether you’re a beginner or an advanced developer, SiteOrigin CSS has you covered.\u003C\u002Fp>\n\u003Cp>For beginners, our user-friendly visual controls and live previews eliminate the guesswork from CSS editing. See your changes as you make them, ensuring your site looks exactly as you envision. For advanced users, we offer robust code autocompletion, speeding up your workflow and making CSS writing faster and more efficient than ever before. Take full control of your site’s design with SiteOrigin CSS and bring your creative vision to life.\u003C\u002Fp>\n\u003Cdiv class=\"embed-vimeo\" style=\"text-align: center;\">\u003Ciframe loading=\"lazy\" src=\"https:\u002F\u002Fplayer.vimeo.com\u002Fvideo\u002F129660380\" width=\"750\" height=\"422\" frameborder=\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen>\u003C\u002Fiframe>\u003C\u002Fdiv>\n\u003Ch4>Inspector\u003C\u002Fh4>\n\u003Cp>The hardest part of editing your site’s design using CSS is usually finding the correct selector to use. The powerful inspector that comes with SiteOrigin CSS makes this easy. While viewing a full preview of your site, just click on an element, and it’ll help you identify the best selector to use to target that element.\u003C\u002Fp>\n\u003Cp>The inspector will help you even if you have no idea what a CSS selector is.\u003C\u002Fp>\n\u003Ch4>Visual Editor\u003C\u002Fh4>\n\u003Cp>Don’t like playing around with code? No problem. SiteOrigin CSS has a set of simple controls that make it easy to choose colors, styles, and measurements. Combined with the inspector, you’ll be able to make changes in just a few clicks.\u003C\u002Fp>\n\u003Ch4>CSS Editor\u003C\u002Fh4>\n\u003Cp>SiteOrigin CSS has a powerful CSS editor, the likes of which you’d usually only expect from high-end IDEs. It has autocompletion for both CSS selectors and attributes. It also features very useful CSS linting to help you identify issues in your code before you publish your changes.\u003C\u002Fp>\n\u003Ch4>It’s Free\u003C\u002Fh4>\n\u003Cp>We’re committed to keeping SiteOrigin CSS free. You can install it on as many sites as you like without ever worrying about licensing. All future updates and upgrades will be free, and we even offer free support over on our friendly support forums.\u003C\u002Fp>\n\u003Ch4>Works With Any Theme\u003C\u002Fh4>\n\u003Cp>There’s an ever-growing collection of awesome WordPress themes, and now with SiteOrigin CSS, you can edit every single one of them to your heart’s content. No matter what theme you’re using, SiteOrigin CSS will work perfectly.\u003C\u002Fp>\n\u003Ch4>Actively Developed\u003C\u002Fh4>\n\u003Cp>We’re actively developing SiteOrigin CSS. Keep track of what’s happening over on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsiteorigin\u002Fso-css\u002F\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Documentation\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fsiteorigin.com\u002Fcss\u002Fgetting-started\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> is available on SiteOrigin.\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>Free support is available on the \u003Ca href=\"https:\u002F\u002Fsiteorigin.com\u002Fthread\u002F\" rel=\"nofollow ugc\">SiteOrigin support forums\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>SiteOrigin Premium\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fsiteorigin.com\u002Fdownloads\u002Fpremium\u002F\" rel=\"nofollow ugc\">SiteOrigin Premium\u003C\u002Fa> enhances SiteOrigin CSS with a Google Web Font Selector. Choose from hundreds of beautiful web fonts right in the visual editor.\u003C\u002Fp>\n\u003Cp>SiteOrigin Premium includes access to our professional email support service, perfect for those times when you need fast and effective technical support. We’re standing by to assist you in any way we can.\u003C\u002Fp>\n","Powerful, simple CSS editing for WordPress. Visual controls & real-time previews for effortless site customization.",100000,5885531,98,152,"2025-12-06T20:31:00.000Z","3.9",[122,123,124,125,126],"css-editor","live-editing","theme-editor","visual-css","website-styling","https:\u002F\u002Fsiteorigin.com\u002Fcss\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fso-css.1.6.5.zip",{"slug":130,"name":131,"version":132,"author":131,"author_profile":133,"description":134,"short_description":135,"active_installs":136,"downloaded":137,"rating":138,"num_ratings":139,"last_updated":140,"tested_up_to":141,"requires_at_least":142,"requires_php":143,"tags":144,"homepage":143,"download_link":148,"security_score":61,"vuln_count":149,"unpatched_count":28,"last_vuln_date":150,"fetched_at":30},"hotjar","Hotjar","1.0.16","https:\u002F\u002Fprofiles.wordpress.org\u002Fhotjar\u002F","\u003Cp>Hotjar helps you to connect the dots between what your users do and why—so you can confidently create and optimize user experiences that convert. See what your users see, ask how they feel, and connect 1:1, all from one powerful and intuitive platform.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Hotjar Observe:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Visualize user behavior\u003C\u002Fstrong> – Heatmaps visually represent where users click, move, and scroll on your site. With this context, you’ll be inspired with simple ways to improve your site.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Put yourself in their shoes\u003C\u002Fstrong> – Watch recordings of real user behavior on your site. See visitors’ clicks, mouse movements, u-turns, and rage clicks. Learn what frustrates users and resolve issues early.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Measure conversions and learn why users drop off\u003C\u002Fstrong> – Visualize your conversion flows with Funnels, and understand where your users are getting stuck by zooming into relevant recordings.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Explore and understand your metrics\u003C\u002Fstrong> – Trends connects the dots between numbers and user behavior insights so you can visualize your most important metrics and find the recordings and heatmaps of the underlying user behavior with a single click.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Hotjar Ask:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Hear from your users\u003C\u002Fstrong> –  Surveys bring voice-of-customer to your decision-making. Gathering evidence for a landing page or feature? Use a targeted Survey to validate your ideas and better understand your users.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Get feedback with context\u003C\u002Fstrong> – A real-time suggestion box on your site, Feedback lets users express frustration or delight about individual parts of your site, right down to the page, form, or image they’re looking at.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Hotjar Engage:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Connect with users\u003C\u002Fstrong> – Automate the recruitment, scheduling, and hosting of moderated user interviews, and focus on what matters the most—connecting with users.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Hotjar Platform:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Stay on top of your user metrics\u003C\u002Fstrong> – Use your Dashboard to get a high-level view of user data and spot issues before they become serious, identify trends, and find deeper insights.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Integrate Hotjar with the tools you love\u003C\u002Fstrong> – Connect Hotjar with thousands of popular apps, so you can automate your work and have more time for what matters most—no code required.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin provides a simple installation of Hotjar on your WordPress site. \u003Ca href=\"https:\u002F\u002Finsights.hotjar.com\u002Fregister?utm_source=wordpress&utm_medium=plugin\" rel=\"nofollow ugc\">Sign-up for your free trial today\u003C\u002Fa>!\u003C\u002Fp>\n","The fast & visual way to understand your users.",80000,1084428,58,18,"2023-10-25T07:52:00.000Z","6.0.11","4.6","",[145,130,146,147,22],"heatmaps","insights","recordings","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fhotjar.1.0.16.zip",1,"2023-10-05 00:00:00",{"attackSurface":152,"codeSignals":395,"taintFlows":472,"riskAssessment":497,"analyzedAt":502},{"hooks":153,"ajaxHandlers":365,"restRoutes":382,"shortcodes":383,"cronEvents":384,"entryPointCount":394,"unprotectedCount":34},[154,160,166,170,174,177,181,184,187,192,196,200,205,208,213,217,221,223,227,231,235,238,241,245,248,251,254,258,263,266,268,270,274,277,281,285,288,291,294,297,300,304,305,309,312,314,317,319,321,323,326,329,332,335,338,341,345,347,350,353,355,359,361,363],{"type":155,"name":156,"callback":157,"file":158,"line":159},"action","admin_init","register_settings","includes\\core\\settings\\class-manager.php",24,{"type":161,"name":162,"callback":163,"file":164,"line":165},"filter","cron_schedules","schedule_cron_healthcheck","includes\\core\\utilities\\class-background-process.php",50,{"type":155,"name":156,"callback":167,"file":168,"line":169},"init_admin_columns","includes\\features\\class-admin-columns.php",13,{"type":155,"name":171,"callback":172,"file":173,"line":49},"current_screen","closure","includes\\features\\class-admin-header.php",{"type":155,"name":175,"callback":176,"file":173,"line":169},"in_admin_header","add_navigation",{"type":155,"name":178,"callback":179,"file":180,"line":169},"admin_menu","add_main_menu","includes\\features\\class-admin.php",{"type":155,"name":156,"callback":182,"file":180,"line":183},"Vrts\\Features\\Service::connect_service",15,{"type":155,"name":156,"callback":172,"file":185,"line":186},"includes\\features\\class-bulk-actions.php",14,{"type":155,"name":188,"callback":189,"file":190,"line":191},"vrts_fetch_updates_cron","fetch_updates","includes\\features\\class-cron-jobs.php",36,{"type":155,"name":193,"callback":194,"priority":49,"file":190,"line":195},"vrts_fetch_test_updates","fetch_test_updates",37,{"type":155,"name":197,"callback":198,"priority":49,"file":190,"line":199},"vrts_fetch_test_run_updates","fetch_test_run_updates",38,{"type":155,"name":201,"callback":202,"file":203,"line":204},"admin_enqueue_scripts","enqueue_scripts","includes\\features\\class-enqueue-scripts.php",16,{"type":155,"name":206,"callback":206,"file":203,"line":207},"enqueue_block_editor_assets",17,{"type":155,"name":209,"callback":210,"file":211,"line":212},"admin_notices","activation_admin_notice","includes\\features\\class-install.php",20,{"type":155,"name":214,"callback":215,"priority":49,"file":211,"line":216},"init","install",22,{"type":155,"name":218,"callback":219,"priority":49,"file":211,"line":220},"upgrader_process_complete","on_upgrade",23,{"type":155,"name":222,"callback":215,"priority":49,"file":211,"line":159},"vrts_plugin_on_upgrade",{"type":155,"name":224,"callback":224,"file":225,"line":226},"add_meta_boxes","includes\\features\\class-metaboxes.php",40,{"type":155,"name":228,"callback":229,"file":225,"line":230},"rest_api_init","add_rest_actions",41,{"type":155,"name":232,"callback":233,"priority":49,"file":225,"line":234},"save_post","save_meta_boxes_data",42,{"type":155,"name":228,"callback":236,"file":237,"line":186},"register_rest_field","includes\\features\\class-onboarding.php",{"type":161,"name":239,"callback":240,"file":237,"line":183},"vrts_onboarding","get_onboarding",{"type":155,"name":242,"callback":243,"file":244,"line":183},"wp_after_insert_post","resume_test","includes\\features\\class-post-update-actions.php",{"type":155,"name":246,"callback":247,"priority":49,"file":244,"line":204},"trashed_post","on_trash_post_action",{"type":155,"name":249,"callback":250,"priority":49,"file":244,"line":207},"transition_post_status","on_transition_post_status_action",{"type":155,"name":252,"callback":253,"priority":49,"file":244,"line":139},"update_option_vrts_remaining_tests","on_update_option_vrts_remaining_tests_action",{"type":155,"name":255,"callback":256,"priority":49,"file":244,"line":257},"post_updated","on_post_updated_action",19,{"type":161,"name":259,"callback":260,"priority":49,"file":261,"line":262},"http_headers_useragent","set_user_agent","includes\\features\\class-service.php",124,{"type":155,"name":214,"callback":264,"file":265,"line":216},"add_settings","includes\\features\\class-settings-page.php",{"type":155,"name":178,"callback":267,"file":265,"line":220},"add_submenu_page",{"type":155,"name":156,"callback":269,"file":265,"line":159},"settings_migration",{"type":155,"name":271,"callback":272,"priority":49,"file":265,"line":273},"add_option_vrts_click_selectors","do_after_update_click_selectors",25,{"type":155,"name":275,"callback":272,"priority":49,"file":265,"line":276},"update_option_vrts_click_selectors",26,{"type":155,"name":278,"callback":279,"priority":49,"file":265,"line":280},"pre_update_option_vrts_license_key","do_before_add_license_key",27,{"type":155,"name":282,"callback":283,"priority":49,"file":265,"line":284},"pre_update_option_vrts_email_update_notification_address","do_before_updating_email_address",28,{"type":155,"name":286,"callback":283,"priority":49,"file":265,"line":287},"pre_update_option_vrts_email_api_notification_address",29,{"type":155,"name":289,"callback":290,"priority":49,"file":265,"line":37},"update_option_vrts_automatic_comparison","do_after_update_vrts_automatic_comparison",{"type":155,"name":209,"callback":292,"file":265,"line":293},"render_notification_license_added",403,{"type":155,"name":209,"callback":295,"file":265,"line":296},"render_notification_license_not_added",406,{"type":155,"name":209,"callback":298,"file":265,"line":299},"render_notification_settings_saved",410,{"type":155,"name":156,"callback":301,"priority":302,"file":303,"line":257},"remove_admin_notices",99,"includes\\features\\class-test-runs-page.php",{"type":155,"name":178,"callback":267,"file":303,"line":212},{"type":155,"name":306,"callback":307,"file":303,"line":308},"admin_body_class","add_body_class",21,{"type":155,"name":209,"callback":310,"file":303,"line":311},"render_notification_connection_failed",242,{"type":155,"name":178,"callback":267,"file":313,"line":139},"includes\\features\\class-tests-page.php",{"type":161,"name":315,"callback":316,"priority":49,"file":313,"line":257},"set-screen-option","set_screen",{"type":155,"name":318,"callback":318,"priority":49,"file":313,"line":212},"wp_link_query",{"type":155,"name":156,"callback":320,"file":313,"line":216},"handle_bulk_actions",{"type":155,"name":209,"callback":310,"file":313,"line":322},363,{"type":155,"name":209,"callback":324,"file":313,"line":325},"render_notification_get_started",366,{"type":155,"name":209,"callback":327,"file":313,"line":328},"render_notification_new_test_added",373,{"type":155,"name":209,"callback":330,"file":313,"line":331},"render_notification_new_tests_added",379,{"type":155,"name":209,"callback":333,"file":313,"line":334},"render_notification_test_disabled",385,{"type":155,"name":209,"callback":336,"file":313,"line":337},"render_notification_unlock_more_tests",390,{"type":155,"name":209,"callback":339,"file":313,"line":340},"render_notification_new_test_failed",396,{"type":155,"name":342,"callback":343,"file":344,"line":186},"vrts_run_tests","run_api_tests","includes\\features\\class-tests.php",{"type":155,"name":218,"callback":346,"priority":49,"file":344,"line":183},"run_upgrader_tests",{"type":155,"name":214,"callback":348,"file":349,"line":49},"load_plugin_textdomain","includes\\features\\class-translations.php",{"type":155,"name":214,"callback":351,"file":349,"line":352},"set_script_translations",11,{"type":155,"name":178,"callback":267,"file":354,"line":257},"includes\\features\\class-upgrade-page.php",{"type":155,"name":228,"callback":356,"file":357,"line":358},"register_routes","includes\\rest-api\\class-rest-alerts-controller.php",33,{"type":155,"name":228,"callback":356,"file":360,"line":358},"includes\\rest-api\\class-rest-service-controller.php",{"type":155,"name":228,"callback":356,"file":362,"line":358},"includes\\rest-api\\class-rest-test-runs-controller.php",{"type":155,"name":228,"callback":356,"file":364,"line":358},"includes\\rest-api\\class-rest-tests-controller.php",[366,372,375,379],{"action":367,"nopriv":368,"callback":369,"hasNonce":370,"hasCapCheck":368,"file":371,"line":169},"vrts_admin_notice_dismiss",false,"wp_ajax_save_dismiss_status_ajax",true,"includes\\features\\class-admin-notices.php",{"action":373,"nopriv":368,"callback":374,"hasNonce":370,"hasCapCheck":368,"file":313,"line":308},"vrts_test_quick_edit_save","quick_edit_save",{"action":376,"nopriv":370,"callback":377,"hasNonce":368,"hasCapCheck":368,"file":360,"line":378},"vrts_service","ajax_action",34,{"action":380,"nopriv":368,"callback":377,"hasNonce":368,"hasCapCheck":368,"file":360,"line":381},"priv_vrts_service",35,[],[],[385,386,388,390,392],{"hook":188,"callback":188,"file":190,"line":378},{"hook":193,"callback":193,"file":190,"line":387},71,{"hook":197,"callback":197,"file":190,"line":389},90,{"hook":193,"callback":193,"file":190,"line":391},102,{"hook":197,"callback":197,"file":190,"line":393},111,4,{"dangerousFunctions":396,"sqlUsage":397,"outputEscaping":449,"fileOperations":149,"externalRequests":470,"nonceChecks":352,"capabilityChecks":169,"bundledLibraries":471},[],{"prepared":38,"raw":308,"locations":398},[399,401,405,408,410,412,415,417,421,423,425,427,429,431,434,436,438,440,443,444,446],{"file":211,"line":199,"context":400},"$wpdb->get_col() with variable interpolation",{"file":402,"line":403,"context":404},"includes\\models\\class-test-run.php",130,"$wpdb->get_results() with variable interpolation",{"file":402,"line":406,"context":407},270,"$wpdb->query() with variable interpolation",{"file":402,"line":409,"context":407},287,{"file":402,"line":411,"context":407},457,{"file":402,"line":413,"context":414},605,"$wpdb->get_row() with variable interpolation",{"file":402,"line":416,"context":404},623,{"file":418,"line":419,"context":420},"includes\\models\\class-test.php",167,"$wpdb->get_var() with variable interpolation",{"file":418,"line":422,"context":404},173,{"file":418,"line":424,"context":404},191,{"file":418,"line":426,"context":407},780,{"file":428,"line":358,"context":407},"includes\\tables\\class-alerts-table.php",{"file":428,"line":430,"context":407},89,{"file":432,"line":433,"context":407},"includes\\tables\\class-test-runs-table.php",121,{"file":432,"line":435,"context":407},125,{"file":432,"line":437,"context":407},129,{"file":432,"line":439,"context":407},133,{"file":441,"line":442,"context":407},"includes\\tables\\class-tests-table.php",32,{"file":441,"line":195,"context":407},{"file":441,"line":445,"context":407},45,{"file":447,"line":448,"context":400},"uninstall.php",47,{"escaped":450,"rawEcho":451,"locations":452},416,7,[453,457,459,461,464,467,468],{"file":454,"line":455,"context":456},"components\\emails\\test-run\\index.php",213,"raw output",{"file":454,"line":458,"context":456},216,{"file":454,"line":460,"context":456},243,{"file":462,"line":463,"context":456},"components\\upgrade-page\\index.php",3,{"file":465,"line":466,"context":456},"includes\\core\\class-plugin.php",236,{"file":168,"line":387,"context":456},{"file":168,"line":469,"context":456},79,5,[],[473,489],{"entryPoint":474,"graph":475,"unsanitizedCount":28,"severity":488},"wp_ajax_save_dismiss_status_ajax (includes\\features\\class-admin-notices.php:19)",{"nodes":476,"edges":486},[477,481],{"id":478,"type":479,"label":480,"file":371,"line":308},"n0","source","$_POST",{"id":482,"type":483,"label":484,"file":371,"line":273,"wp_function":485},"n1","sink","update_option() [Settings Manipulation]","update_option",[487],{"from":478,"to":482,"sanitized":370},"low",{"entryPoint":490,"graph":491,"unsanitizedCount":28,"severity":488},"\u003Cclass-admin-notices> (includes\\features\\class-admin-notices.php:0)",{"nodes":492,"edges":495},[493,494],{"id":478,"type":479,"label":480,"file":371,"line":308},{"id":482,"type":483,"label":484,"file":371,"line":273,"wp_function":485},[496],{"from":478,"to":482,"sanitized":370},{"summary":498,"deductions":499},"The 'visual-regression-tests' plugin v2.0.5 exhibits a generally strong security posture, with excellent practices observed in output escaping and the use of prepared statements for SQL queries. The plugin also has a clean vulnerability history, indicating a commitment to security over time. However, the presence of two AJAX handlers without authentication checks presents a significant concern. While the total attack surface is relatively small, these unprotected entry points could be exploited by unauthenticated users to trigger unintended actions within the plugin, potentially leading to unauthorized functionality or information disclosure if the specific actions performed by these handlers are sensitive.\n\nThe taint analysis shows no critical or high severity flows, which is highly positive. The plugin also avoids dangerous functions and external HTTP requests that are often associated with security risks. The limited number of file operations is also a good sign. Despite the generally good security indicators, the unprotected AJAX handlers are a specific area that requires attention and remediation to ensure a robust security profile.",[500],{"reason":501,"points":86},"Unprotected AJAX handlers","2026-03-16T19:13:46.750Z",{"wat":504,"direct":515},{"assetPaths":505,"generatorPatterns":510,"scriptPaths":511,"versionParams":512},[506,507,508,509],"\u002Fwp-content\u002Fplugins\u002Fvisual-regression-tests\u002Fbuild\u002Fadmin.css","\u002Fwp-content\u002Fplugins\u002Fvisual-regression-tests\u002Fbuild\u002Fadmin.js","\u002Fwp-content\u002Fplugins\u002Fvisual-regression-tests\u002Fbuild\u002Feditor.css","\u002Fwp-content\u002Fplugins\u002Fvisual-regression-tests\u002Fbuild\u002Feditor.js",[],[],[513,514],"visual-regression-tests\u002Fbuild\u002Fadmin.asset.php","visual-regression-tests\u002Fbuild\u002Feditor.asset.php",{"cssClasses":516,"htmlComments":518,"htmlAttributes":520,"restEndpoints":524,"jsGlobals":526,"shortcodeOutput":529},[517],"vrts-admin-notice",[519],"You need to run `npm start` or `npm run build`.",[521,522,523],"data-vrts-test-id","data-vrts-test-status","data-vrts-hide-css-selectors",[525],"\u002Fwp-json\u002Fvrts\u002Fv1",[527,528],"vrts_admin_vars","vrts_editor_vars",[]]