{"id":333579,"date":"2026-07-02T12:15:54","date_gmt":"2026-07-02T12:15:54","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/eatransform-formleak\/"},"modified":"2026-07-02T14:51:02","modified_gmt":"2026-07-02T14:51:02","slug":"eatransform-formleak","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/eatransform-formleak\/","author":23410220,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.7","stable_tag":"1.3.7","tested":"7.0","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Eatransform FormLeak","header_author":"Eatransform","header_description":"\u30b5\u30a4\u30c8\u5185\u30d5\u30a9\u30fc\u30e0\u306e\u300c\u5165\u529b\u30b9\u30c8\u30ec\u30b9\uff08\u96e2\u8131\u30ea\u30b9\u30af\uff09\u300d\u3092\u3001\u500b\u4eba\u60c5\u5831\u3092\u53d6\u5f97\u305b\u305a\u6319\u52d5\u3060\u3051\u3067\u8a08\u6e2c\u30fb\u84c4\u7a4d\u3057\u3001\u3069\u306e\u9805\u76ee\u3067\u96e2\u8131\u30fb\u3064\u307e\u305a\u304d\u304c\u8d77\u304d\u3066\u3044\u308b\u304b\u3092\u53ef\u8996\u5316\u3057\u307e\u3059\u3002","assets_banners_color":"3f4153","last_updated":"2026-07-02 14:51:02","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/eatransform.net\/eatransform-formleak-released","header_author_uri":"https:\/\/eatransform.net\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":40,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.7":{"tag":"1.3.7","author":"eatransform","date":"2026-07-02 14:51:02"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3593961,"resolution":"256x256","location":"assets","locale":"","width":1254,"height":1254}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3593961,"resolution":"772x250","location":"assets","locale":"","width":2203,"height":714}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.7"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[232,1152,984,361,3800],"plugin_category":[36,42,55],"plugin_contributors":[252134],"plugin_business_model":[],"class_list":["post-333579","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-contact-form-7","plugin_tags-conversion","plugin_tags-form","plugin_tags-ux","plugin_category-analytics","plugin_category-contact-forms","plugin_category-seo-and-marketing","plugin_contributors-eatransform","plugin_committers-eatransform"],"banners":{"banner":"https:\/\/ps.w.org\/eatransform-formleak\/assets\/banner-772x250.png?rev=3593961","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/eatransform-formleak\/assets\/icon-256x256.png?rev=3593961","icon_2x":"https:\/\/ps.w.org\/eatransform-formleak\/assets\/icon-256x256.png?rev=3593961","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Eatransform FormLeak shows you exactly where visitors hesitate and leave your contact or booking forms, so you know what to fix.<\/p>\n\n<ul>\n<li>Personal data (name, phone number, etc.) is <strong>never collected or stored<\/strong>.<\/li>\n<li>Only behavior is measured: time spent on each field, backspace count, and error count.<\/li>\n<li>Uses <code>navigator.sendBeacon<\/code> so abandonment data is captured reliably even when the visitor closes the tab.<\/li>\n<li>Automatically scans input fields inside <code>&lt;form&gt;<\/code> elements, including Contact Form 7, MW WP Form, WooCommerce, and forms rendered dynamically via JavaScript (detected with MutationObserver).<\/li>\n<li>The dashboard shows a \"drop-off risk score\" for each field, so you can see at a glance which field is the biggest obstacle.<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>FormLeak never collects the content typed into form fields. It only stores behavioral statistics: time spent per field, backspace count, and error count.<\/p>\n\n<h4>Data Collection Security<\/h4>\n\n<p>The data collection endpoint only accepts requests originating from the same site and applies a per-IP rate limit.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>wp-content\/plugins\/<\/code> and activate it.<\/li>\n<li>Visitor interactions on pages with forms are recorded automatically.<\/li>\n<li>Check the drop-off risk score for each form under \"FormLeak &gt; Dashboard\" in the admin menu.<\/li>\n<li>(Optional) If you need to track a JavaScript form that doesn't use a <code>&lt;form&gt;<\/code> tag, specify its CSS selector under \"Settings\".<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20collect%20any%20personal%20information%3F\"><h3>Does this collect any personal information?<\/h3><\/dt>\n<dd><p>No. FormLeak only measures behavior (time on field, backspaces, errors). The text a visitor types is never sent to the server or stored.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20page%20builders%20or%20custom%20javascript%20forms%3F\"><h3>Does it work with page builders or custom JavaScript forms?<\/h3><\/dt>\n<dd><p>Yes. Standard <code>&lt;form&gt;<\/code> elements are detected automatically. For JavaScript-rendered forms without a <code>&lt;form&gt;<\/code> tag, you can specify a CSS selector in Settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.7<\/h4>\n\n<ul>\n<li>Applied a unique prefix (eatrfo_ \/ EATRFO_ \/ Eatrfo_) to all classes, constants, options, transients, cron hooks, REST namespace and script globals to prevent naming collisions, per WordPress.org review feedback.<\/li>\n<\/ul>\n\n<h4>1.3.6<\/h4>\n\n<ul>\n<li>Fixed WordPress.org automated scan warning: unified Text Domain to match the plugin slug (eatransform-formleak).<\/li>\n<\/ul>\n\n<h4>1.3.5<\/h4>\n\n<ul>\n<li>Fixed WordPress.org submission error: Plugin URI and Author URI were identical. Plugin URI now points to the announcement article.<\/li>\n<\/ul>\n\n<h4>1.3.4<\/h4>\n\n<ul>\n<li>Renamed plugin to \"Eatransform FormLeak\" and updated slug to eatransform-formleak for the WordPress.org submission.<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Fixed a UI typo (\"\u4eba\u3076\u3093\" -&gt; \"\u4eba\u5206\").<\/li>\n<li>Fixed remaining misplaced phpcs:ignore comments for multi-line SQL strings; added missing NoCaching code to one ignore comment (Plugin Check: 0 errors, 0 warnings).<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Fixed misplaced phpcs:ignore comments so suppressions correctly target the flagged line (Plugin Check now reports 0 errors, 0 warnings).<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Renamed main file (formleak-ai.php \u2192 formleak.php) and unified text domain to 'formleak'.<\/li>\n<li>Fixed unescaped output, missing input unslashing, and added justified phpcs:ignore comments for safe table-name SQL interpolation (WordPress.org Plugin Check clean-up).<\/li>\n<li>Rewrote readme.txt in English; updated \"Tested up to\" to 7.0.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Changed data retention period from 90 days to 30 days (auto-deleted after 30 days).<\/li>\n<li>Added a \"last 30 days\" daily trend chart to the dashboard (submitted vs. abandoned, SVG line chart).<\/li>\n<li>Added a per-session drop-off risk card with timestamp.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Removed the AI report and estimated-loss display; the plugin now focuses solely on behavior tracking and drop-off risk visualization.<\/li>\n<li>Added same-origin validation and per-IP rate limiting to the data collection endpoint.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Find out where visitors get stuck and abandon your contact or booking forms, without collecting any personal data.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/333579","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=333579"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/eatransform"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=333579"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=333579"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=333579"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=333579"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=333579"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=333579"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}