{"id":350961,"date":"2026-08-13T11:15:19","date_gmt":"2026-08-13T11:15:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/review-before-send-for-contact-form-7\/"},"modified":"2026-08-13T11:15:06","modified_gmt":"2026-08-13T11:15:06","slug":"revisend-for-contact-form-7","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/revisend-for-contact-form-7\/","author":23544501,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.2.0","stable_tag":"0.2.0","tested":"7.0.4","requires":"6.7","requires_php":"7.4","requires_plugins":null,"header_name":"Revisend for Contact Form 7","header_author":"Slobodan Radosavljevic","header_description":"Adds a review-and-confirm step to Contact Form 7 forms before the mail is sent. Built-in honeypot and time-trap spam protection.","assets_banners_color":"86b1d1","last_updated":"2026-08-13 11:15:06","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/slobostep\/revisend-for-contact-form-7","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":23,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.2.0":{"tag":"0.2.0","author":"slobostep","date":"2026-08-13 11:15:06"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3645206,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3645206,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3645035,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3645035,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3645206,"resolution":"1","location":"assets","locale":"","width":1200,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3645206,"resolution":"2","location":"assets","locale":"","width":1200,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3645206,"resolution":"3","location":"assets","locale":"","width":1200,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3645206,"resolution":"4","location":"assets","locale":"","width":1200,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3645206,"resolution":"5","location":"assets","locale":"","width":1200,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3645206,"resolution":"6","location":"assets","locale":"","width":1200,"height":900},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3645206,"resolution":"7","location":"assets","locale":"","width":1200,"height":900},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3645206,"resolution":"8","location":"assets","locale":"","width":1200,"height":900}},"screenshots":{"1":"Contact Form 7 editor with the Revisend tab.","2":"Revisend per-form settings.","3":"A standard Contact Form 7 form before submission.","4":"Native Contact Form 7 validation messages.","5":"A completed form before submission.","6":"The desktop review step with Edit and Confirm &amp; Send buttons.","7":"The mobile review step with stacked buttons.","8":"The native Contact Form 7 success message after sending."}},"plugin_section":[],"plugin_tags":[8381,1152,127662,110,2419],"plugin_category":[53],"plugin_contributors":[275507],"plugin_business_model":[],"class_list":["post-350961","plugin","type-plugin","status-publish","hentry","plugin_tags-confirmation","plugin_tags-contact-form-7","plugin_tags-multi-step","plugin_tags-review","plugin_tags-spam-protection","plugin_category-ratings-and-reviews","plugin_contributors-slobostep","plugin_committers-slobostep"],"banners":{"banner":"https:\/\/ps.w.org\/revisend-for-contact-form-7\/assets\/banner-772x250.png?rev=3645035","banner_2x":"https:\/\/ps.w.org\/revisend-for-contact-form-7\/assets\/banner-1544x500.png?rev=3645035","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/revisend-for-contact-form-7\/assets\/icon-128x128.png?rev=3645206","icon_2x":"https:\/\/ps.w.org\/revisend-for-contact-form-7\/assets\/icon-256x256.png?rev=3645206","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/revisend-for-contact-form-7\/assets\/screenshot-1.png?rev=3645206","caption":"Contact Form 7 editor with the Revisend tab."},{"src":"https:\/\/ps.w.org\/revisend-for-contact-form-7\/assets\/screenshot-2.png?rev=3645206","caption":"Revisend per-form settings."},{"src":"https:\/\/ps.w.org\/revisend-for-contact-form-7\/assets\/screenshot-3.png?rev=3645206","caption":"A standard Contact Form 7 form before submission."},{"src":"https:\/\/ps.w.org\/revisend-for-contact-form-7\/assets\/screenshot-4.png?rev=3645206","caption":"Native Contact Form 7 validation messages."},{"src":"https:\/\/ps.w.org\/revisend-for-contact-form-7\/assets\/screenshot-5.png?rev=3645206","caption":"A completed form before submission."},{"src":"https:\/\/ps.w.org\/revisend-for-contact-form-7\/assets\/screenshot-6.png?rev=3645206","caption":"The desktop review step with Edit and Confirm &amp; Send buttons."},{"src":"https:\/\/ps.w.org\/revisend-for-contact-form-7\/assets\/screenshot-7.png?rev=3645206","caption":"The mobile review step with stacked buttons."},{"src":"https:\/\/ps.w.org\/revisend-for-contact-form-7\/assets\/screenshot-8.png?rev=3645206","caption":"The native Contact Form 7 success message after sending."}],"raw_content":"<!--section=description-->\n<p>Contact Form 7 is the most popular form plugin on WordPress, but it sends the\nmail the moment the visitor clicks the submit button. Revisend for Contact Form 7\nadds an optional confirmation step: after the form passes Contact Form 7's\nnative validation, the visitor sees a summary of what they typed and must\nclick \"Confirm &amp; Send\" before the form is actually submitted. If they spot a\nmistake, they can go back with \"Edit\".<\/p>\n\n<h4>Why use it?<\/h4>\n\n<ul>\n<li><strong>Reduce mistakes<\/strong> \u2014 visitors can review their input before it is sent.<\/li>\n<li><strong>Native CF7 validation<\/strong> \u2014 required-field and format messages are shown\nexactly as Contact Form 7 normally shows them, before the review step.<\/li>\n<li><strong>Per-form toggle<\/strong> \u2014 enable the review step only on the forms you want.<\/li>\n<li><strong>One-time token<\/strong> \u2014 prevents double submissions and bypass attempts.<\/li>\n<li><strong>File uploads supported<\/strong> \u2014 files are preserved between the review step\nand the confirmed submit, then attached to the mail.<\/li>\n<li><strong>Built-in spam protection<\/strong> \u2014 honeypot field and minimum-fill-time check.<\/li>\n<li><strong>Lightweight<\/strong> \u2014 no jQuery, no external services, translation-ready.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>revisend-for-contact-form-7<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the Plugins screen.<\/li>\n<li>Edit a Contact Form 7 form and check \"Show a review step before this form is sent\".<\/li>\n<li>Done. The form now requires confirmation before sending.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20file%20upload%20fields%3F\"><h3>Does it work with file upload fields?<\/h3><\/dt>\n<dd><p>Yes. Files are validated and temporarily stored on the server between the\nreview step and the confirmed submit, then attached to the mail.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20javascript%20is%20disabled%3F\"><h3>What happens if JavaScript is disabled?<\/h3><\/dt>\n<dd><p>The confirmation step requires JavaScript. For forms with the step enabled,\nsubmissions without a confirmation token are blocked.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20third-party%20contact%20form%207%20add-ons%3F\"><h3>Does it work with third-party Contact Form 7 add-ons?<\/h3><\/dt>\n<dd><p>Anything that hooks into the standard Contact Form 7 submission flow works\nwith the confirm step. Add-ons that hijack the submit button itself may\ninterfere with the review step.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20labels%20%28edit%20%2F%20confirm%20%26%20send%29%3F\"><h3>Can I change the labels (Edit \/ Confirm &amp; Send)?<\/h3><\/dt>\n<dd><p>Yes. The labels are translatable and can also be customized with the\n    cf7rb_review_labels filter. Example for your theme's functions.php:<\/p>\n\n<pre><code>`\n<\/code><\/pre>\n\n<p>add_filter( 'cf7rb_review_labels', function( $labels ) {\n    $labels['confirm'] = 'Send Now';\n    $labels['edit']    = 'Go Back';\n    $labels['heading'] = 'Review your message';\n    return $labels;\n} );\n    `<\/p>\n\n<p>Available labels: <code>heading<\/code>, <code>intro<\/code>, <code>edit<\/code>, <code>confirm<\/code>,\n    error, <code>accepted<\/code>, <code>declined<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Change: plugin renamed to Revisend for Contact Form 7.<\/li>\n<li>Change: posted form data is sanitized before it is stored and displayed.<\/li>\n<li>Change: file uploads now use wp_handle_upload().<\/li>\n<li>Change: added \"Requires Plugins: contact-form-7\" header.<\/li>\n<\/ul>\n\n<h4>0.1.9<\/h4>\n\n<ul>\n<li>Change: more compact mobile layout \u2014 form font scales down to 0.9em,\nsmaller input padding, tighter label and field spacing.<\/li>\n<\/ul>\n\n<h4>0.1.8<\/h4>\n\n<ul>\n<li>Change: on screens narrower than 480px, forms with the review step enabled\nget mobile-friendly styling: full-width inputs and submit button, slightly\nsmaller labels, and input font-size of 16px to prevent iOS auto-zoom.<\/li>\n<\/ul>\n\n<h4>0.1.7<\/h4>\n\n<ul>\n<li>Fix: long values (emails, URLs) wrap inside the review box instead of\noverflowing the screen on narrow devices.<\/li>\n<\/ul>\n\n<h4>0.1.6<\/h4>\n\n<ul>\n<li>Change: on screens narrower than 480px the Edit and Confirm buttons are\nstacked full-width for easier tapping.<\/li>\n<\/ul>\n\n<h4>0.1.5<\/h4>\n\n<ul>\n<li>Change: the review step now runs after Contact Form 7's native validation.\nInvalid forms show CF7's own per-field messages; the preview is shown only\nwhen the form is valid. No custom validation messages are used.<\/li>\n<li>Fix: the minimum submit time is reduced to 1 second, future timestamps are\naccepted (clock skew), and the maximum page-open time limit is removed, so\nlegitimate submissions are never rejected.<\/li>\n<\/ul>\n\n<h4>0.1.4<\/h4>\n\n<ul>\n<li>Change: the review step is always shown. Missing required fields appear as\n\"\u2014\" in the preview and the confirm button stays disabled until the form is\nvalid. Contact Form 7's native validation is used on confirmation \u2014 no\ncustom validation messages are shown.<\/li>\n<\/ul>\n\n<h4>0.1.3<\/h4>\n\n<ul>\n<li>Fix: temporary upload folders are now fully removed after the mail is sent.<\/li>\n<\/ul>\n\n<h4>0.1.2<\/h4>\n\n<ul>\n<li>Fix: empty required fields no longer reach the review step. The form is\nvalidated (client and server side) before the preview is shown.<\/li>\n<li>Fix: file upload rules are now correctly disabled on the confirm step.<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Fix: form could be submitted again without refresh after a successful send.<\/li>\n<li>Fix: clicking Confirm after Edit could submit the form twice.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Adds a review-and-confirm step to Contact Form 7 forms. Visitors see a summary of what they typed and confirm before the mail is sent.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/350961","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=350961"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/slobostep"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=350961"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=350961"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=350961"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=350961"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=350961"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=350961"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}