=== Izurutoys Confirmation Screen for Contact Form 7 ===
Contributors: izurutoys
Tags: contact form, confirmation, confirm, contact form 7, 確認画面
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Adds a confirmation step to Contact Form 7 forms. Compatible with the [confirm] / [back] tag syntax of "Contact Form 7 add confirm".

== Description ==

Izurutoys Confirmation Screen for Contact Form 7 adds a confirmation step ("kakunin gamen") to Contact Form 7 forms — a de-facto requirement for Japanese business websites.

Contact Form 7 のフォームに「送信前の確認画面」を追加するプラグインです。

Add the buttons to your form template — that is all:

    [confirm "入力内容を確認する"]
    [back "戻って編集する"]
    [submit "この内容で送信する"]

* The confirm button runs Contact Form 7's own full server-side validation (mail is not sent yet).
* On success the form switches to a read-only confirmation view with Back / Send buttons.
* The send button performs the normal Contact Form 7 submission.
* If JavaScript is disabled, the form gracefully degrades to a normal one-step form.

= Migrating from "Contact Form 7 add confirm" =

This plugin is a from-scratch successor to "Contact Form 7 add confirm" (by Yuichiro ABE / Eyeta Co.,Ltd.), which has not been updated since February 2018 and no longer works with current Contact Form 7 (5.4+ replaced the submission flow with a REST endpoint).

「Contact Form 7 add confirm」からの乗り換え先として、フォーム定義を変えずに使えるように作られています。

* **Same form-tag syntax**: existing [confirm "..."] / [back "..."] form definitions work unchanged.
* **Same public CSS class names** (wpcf7c-btn-confirm, wpcf7c-conf, ...): custom styles for the old plugin keep working.
* Migration is two steps: deactivate the old plugin, activate this one. No form editing needed.

= Technical notes =

* Works with the Contact Form 7 REST submission flow.
* No jQuery dependency (vanilla JavaScript).
* The duplicate-submission guard (posted_data_hash) is handled correctly at the confirmation step.
* Side effects apply only to forms that actually contain a [confirm] tag.
* Flamingo: records are stored only on the final send (not on the confirmation step).
* Covered by end-to-end tests (Playwright against a live WordPress + Contact Form 7).

This plugin is not related to the developer of "Contact Form 7", nor to the developer of the original "Contact Form 7 add confirm".
このプラグインは Contact Form 7 の開発元、および旧 add confirm プラグインの開発元とは関係ありません。

== Installation ==

1. Install and activate Contact Form 7.
2. Install and activate this plugin.
3. Add [confirm] and [back] tags to your form template.

If you are replacing "Contact Form 7 add confirm": deactivate it first, then activate this plugin. Your existing form definitions keep working as they are.

== Frequently Asked Questions ==

= I was using "Contact Form 7 add confirm". Do I need to change my forms? =

No. Deactivate the old plugin, activate this one. The [confirm "..."] and [back "..."] tags and the public CSS class names work unchanged.

= What happens if JavaScript is disabled? =

The confirm button stays hidden and the normal submit button works as a one-step form. Submission never breaks.

= Why do the CSS classes start with wpcf7c-? =

They intentionally match the class names of the original "Contact Form 7 add confirm", so existing custom styles keep working after migration. PHP functions and hooks of this plugin use their own cscf7_ prefix and do not conflict with the original plugin.

== Changelog ==

= 1.0.0 =
* First release: a from-scratch implementation for Contact Form 7 6.x (REST submission flow) and WordPress 6.7+.
* [confirm] / [back] tag syntax compatible with "Contact Form 7 add confirm" (2014-2018, GPLv2-or-later, by Yuichiro ABE / Eyeta Co.,Ltd.). Copyright of the original work remains with the original author.
* Vanilla JavaScript (no jQuery).
* posted_data_hash is stripped from the confirmation-step response to avoid false duplicate-submission detection on the final send.
* Confirmation-step side effects are applied only to forms containing a [confirm] tag.
* Flamingo: records are stored only on the final send.
