{"id":296102,"date":"2026-05-16T16:51:45","date_gmt":"2026-05-16T16:51:45","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ews-smart-form-autosave\/"},"modified":"2026-05-16T16:58:00","modified_gmt":"2026-05-16T16:58:00","slug":"savelo-form-autosave","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/savelo-form-autosave\/","author":23474491,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"5.9","requires_php":"7.4","requires_plugins":null,"header_name":"Savelo Form Autosave","header_author":"Savelo","header_description":"Automatically saves form data to localStorage and restores it if the user returns to the page. Supports Contact Form 7. Zero server load.","assets_banners_color":"414141","last_updated":"2026-05-16 16:58:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/savelo-form-autosave\/","header_author_uri":"https:\/\/alexmartinet.dev","rating":0,"author_block_rating":0,"active_installs":0,"downloads":47,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"martinetproparis","date":"2026-05-16 16:58:00"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3533927,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3533927,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3533927,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3533927,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3533931,"resolution":"1","location":"assets","locale":"","width":2581,"height":1784},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3533931,"resolution":"2","location":"assets","locale":"","width":1058,"height":811}},"screenshots":{"1":"Settings page \u2014 clean, native WordPress design.","2":"Frontend restore notification \u2014 discreet, auto-dismissing after 6 seconds."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[34133,1152,4665,361,40189],"plugin_category":[42],"plugin_contributors":[263179],"plugin_business_model":[],"class_list":["post-296102","plugin","type-plugin","status-publish","hentry","plugin_tags-autosave","plugin_tags-contact-form-7","plugin_tags-draft","plugin_tags-form","plugin_tags-localstorage","plugin_category-contact-forms","plugin_contributors-martinetproparis","plugin_committers-martinetproparis"],"banners":{"banner":"https:\/\/ps.w.org\/savelo-form-autosave\/assets\/banner-772x250.png?rev=3533927","banner_2x":"https:\/\/ps.w.org\/savelo-form-autosave\/assets\/banner-1544x500.png?rev=3533927","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/savelo-form-autosave\/assets\/icon-128x128.png?rev=3533927","icon_2x":"https:\/\/ps.w.org\/savelo-form-autosave\/assets\/icon-256x256.png?rev=3533927","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/savelo-form-autosave\/assets\/screenshot-1.png?rev=3533931","caption":"Settings page \u2014 clean, native WordPress design."},{"src":"https:\/\/ps.w.org\/savelo-form-autosave\/assets\/screenshot-2.png?rev=3533931","caption":"Frontend restore notification \u2014 discreet, auto-dismissing after 6 seconds."}],"raw_content":"<!--section=description-->\n<p><strong>Savelo Form Autosave<\/strong> silently saves everything visitors type in your forms \u2014 text, email, number, textarea, select, checkbox, radio \u2014 and brings it back if they navigate away and return, close the tab by accident, or their browser crashes.<\/p>\n\n<p>All data is stored exclusively in the visitor's own browser (localStorage). Nothing is ever sent to your server. Zero database queries on the front end.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Universal form support<\/strong> \u2014 works with any HTML <code>&lt;form&gt;<\/code> element<\/li>\n<li><strong>Smart exclusion<\/strong> \u2014 automatically skips login, registration, password reset, and WooCommerce checkout forms<\/li>\n<li><strong>Security-first<\/strong> \u2014 never saves password fields; respects <code>autocomplete=\"off\"<\/code><\/li>\n<li><strong>Contact Form 7<\/strong> \u2014 saved draft is cleared automatically after a successful AJAX submission<\/li>\n<li><strong>Configurable expiry<\/strong> \u2014 1 to 90 days; expired drafts are cleaned up silently<\/li>\n<li><strong>Restore notification<\/strong> \u2014 optional, auto-dismissing, fully customisable message<\/li>\n<li><strong>Clear on submit<\/strong> \u2014 optionally delete the draft when the form is submitted<\/li>\n<li><strong>Custom exclusions<\/strong> \u2014 exclude any form by CSS selector, by adding the <code>savelo-exclude<\/code> class, or the <code>data-savelo-exclude<\/code> attribute<\/li>\n<li><strong>Zero front-end dependencies<\/strong> \u2014 vanilla ES5 JavaScript, no jQuery required<\/li>\n<li><strong>Assets on demand<\/strong> \u2014 scripts and styles are never loaded in wp-admin<\/li>\n<li><strong>Translation ready<\/strong> \u2014 <code>.pot<\/code> file included<\/li>\n<li><strong>Clean uninstall<\/strong> \u2014 all plugin data removed when you delete the plugin<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>All form data is stored in the visitor's own browser via the localStorage API. No data is transmitted to your server or any third party. Compatible with GDPR-aware workflows. Users can clear their localStorage at any time via their browser settings.<\/p>\n\n<h4>How to exclude a form<\/h4>\n\n<ol>\n<li>Add <code>data-savelo-exclude<\/code> attribute directly to the <code>&lt;form&gt;<\/code> tag, <strong>or<\/strong><\/li>\n<li>Add the CSS class <code>savelo-exclude<\/code> to the <code>&lt;form&gt;<\/code> tag, <strong>or<\/strong><\/li>\n<li>Enter a CSS selector in <strong>Settings \u2192 Form Autosave \u2192 Exclude Forms<\/strong><\/li>\n<\/ol>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>savelo-form-autosave<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install via <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Go to <strong>Settings \u2192 Form Autosave<\/strong> to adjust options (the defaults work for most sites).<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20store%20form%20data%20on%20my%20server%3F\"><h3>Does this plugin store form data on my server?<\/h3><\/dt>\n<dd><p>No. All data is kept exclusively in the visitor's browser using the Web Storage (localStorage) API.<\/p><\/dd>\n<dt id=\"which%20form%20plugins%20are%20supported%3F\"><h3>Which form plugins are supported?<\/h3><\/dt>\n<dd><p>Any standard HTML form works out of the box. Contact Form 7 has enhanced support: the saved draft is automatically cleared after a successful AJAX submission via the <code>wpcf7mailsent<\/code> event.<\/p><\/dd>\n<dt id=\"can%20i%20exclude%20specific%20forms%3F\"><h3>Can I exclude specific forms?<\/h3><\/dt>\n<dd><p>Yes \u2014 three ways: add <code>data-savelo-exclude<\/code> or the <code>savelo-exclude<\/code> CSS class directly to the <code>&lt;form&gt;<\/code> element, or enter CSS selectors in the settings page.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20woocommerce%3F\"><h3>Does this work with WooCommerce?<\/h3><\/dt>\n<dd><p>The WooCommerce checkout form is excluded by default. Other WooCommerce forms (e.g. account registration) are saved normally \u2014 you can exclude them individually if needed.<\/p><\/dd>\n<dt id=\"is%20this%20gdpr%20compliant%3F\"><h3>Is this GDPR compliant?<\/h3><\/dt>\n<dd><p>The plugin stores data only in the visitor's own browser. No data leaves their device. Users can clear it at any time via browser settings. You may still want to mention localStorage usage in your privacy policy.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Automatically saves form data to localStorage and restores it when the visitor returns. Zero server load. Works with any HTML form.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/296102","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=296102"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/martinetproparis"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=296102"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=296102"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=296102"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=296102"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=296102"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=296102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}