| 1 |
# Setting up Double Opt-In |
| 2 |
|
| 3 |
Double Opt-In makes a sign-up count only after the email address has been confirmed with a click on a link. The original form email is delivered after that confirmation. The free plugin supports Contact Form 7. Other form plugins are connected through add-ons of the Pro bundle. |
| 4 |
|
| 5 |
## Setup wizard |
| 6 |
|
| 7 |
After activation the setup wizard opens once. It can be skipped and started again under **Double Opt-In → Settings → Start setup wizard**. Four steps, all prefilled: |
| 8 |
|
| 9 |
1. **Sender:** name and address of the confirmation email, ideally an address on your own domain. |
| 10 |
2. **Forms:** the forms that should ask for confirmation, with their email field. Forms that already use Double Opt-In stay as they are. |
| 11 |
3. **Confirmation email:** subject and one of four designs (Light, Dark, Accent, Text only). |
| 12 |
4. **After the click:** create the page "Email address confirmed" or choose an existing page. **Send me a test email** sends a sample whose link confirms nothing (at most five per hour). |
| 13 |
|
| 14 |
Forms are switched on only at the end, and only if their configuration is complete. |
| 15 |
|
| 16 |
 |
| 17 |
|
| 18 |
 |
| 19 |
|
| 20 |
 |
| 21 |
|
| 22 |
 |
| 23 |
|
| 24 |
## Configuring a form |
| 25 |
|
| 26 |
Under **Double Opt-In → Forms** the overview lists all detected forms. A form's switch can be turned on only when three required settings are present. The banner in the form names what is missing. |
| 27 |
|
| 28 |
 |
| 29 |
|
| 30 |
| Required setting | Where | Note | |
| 31 |
|---|---|---| |
| 32 |
| Recipient field | **Email** tab | The form field that holds the email address, usually `your-email` in Contact Form 7 | |
| 33 |
| Subject | **Email** tab | must not be empty | |
| 34 |
| Message body or template | **Email** tab | a custom text must contain `[doubleoptinlink]` | |
| 35 |
|
| 36 |
 |
| 37 |
|
| 38 |
The **General** tab holds the **Consent text (GDPR)**, the **Consent acceptance field**, the **Category**, the **Conditional trigger**, the **Confirmation page** and the **Error redirect page**. With an acceptance field selected, sign-ups without the checkmark are rejected. The **Mapping** tab is optional. |
| 39 |
|
| 40 |
 |
| 41 |
|
| 42 |
 |
| 43 |
|
| 44 |
## Confirmation page |
| 45 |
|
| 46 |
The link in the email leads to the selected confirmation page, or to the home page if none is selected. On the page the shortcode `[doi_confirmation_status]` shows the outcome of the link; all shortcodes are listed on the "Shortcodes and placeholders" page. |
| 47 |
|
| 48 |
 |
| 49 |
|
| 50 |
## Testing and checking |
| 51 |
|
| 52 |
Submit the form, open the confirmation email, click the link. Under **Double Opt-In → Opt-Ins** the record appears with the status **Confirmed**. The detail view shows timestamps, IP addresses, the consent text and the delivery status of the confirmation email. While testing, the sign-up limit applies: by default three sign-ups per address and five per IP per hour. |
| 53 |
|
| 54 |
 |
| 55 |
|
| 56 |
 |
| 57 |
|
| 58 |
## Key settings |
| 59 |
|
| 60 |
Under **Double Opt-In → Settings**: |
| 61 |
|
| 62 |
| Setting | Effect | Default | |
| 63 |
|---|---|---| |
| 64 |
| **Token Expiry (Hours)** | Validity of the confirmation link | 48 | |
| 65 |
| **Delete Opt-Ins after** | Retention of confirmed opt-ins; `0` turns it off | 12 months | |
| 66 |
| **Delete Unconfirmed after** | Retention of unconfirmed sign-ups; `0` turns it off | 7 months | |
| 67 |
| **Rate Limit IP** / **Rate Limit Email** | Sign-ups per time window | 5 / 3 | |
| 68 |
| **Rate Limit Window (Min)** | Length of the time window | 60 | |
| 69 |
|
| 70 |
Deletion is physical and runs once a day. The record is also the proof of consent; very short periods weaken it. |
| 71 |
|
| 72 |
Three more areas of the interface: **Categories** groups opt-ins, **Database** offers delete actions for opt-ins and a reset of the tables, and the **Audit log** lists system events and changes with timestamp and severity. |
| 73 |
|
| 74 |
 |
| 75 |
|
| 76 |
 |
| 77 |
|
| 78 |
 |
| 79 |
|
| 80 |
## Notes |
| 81 |
|
| 82 |
- **Site Health:** Under **Tools → Site Health** the plugin checks the sender domain (SPF, DMARC), failed confirmation emails and orphaned acceptance fields. |
| 83 |
- Help with problems is on the "Troubleshooting" page. |
| 84 |
|