| 1 |
# Optin Module -- Ability Mining |
| 2 |
|
| 3 |
**Module:** Optin (Module 7) |
| 4 |
**Priority:** P1 |
| 5 |
**Directory:** `cartflows/modules/optin/` |
| 6 |
**WC Required:** Yes |
| 7 |
**Date:** 2026-03-04 |
| 8 |
|
| 9 |
--- |
| 10 |
|
| 11 |
## Source Files Reviewed |
| 12 |
|
| 13 |
- `class-cartflows-optin.php` -- Module loader |
| 14 |
- `classes/class-cartflows-optin-meta-data.php` -- Meta fields, settings, design, product config |
| 15 |
- `classes/class-cartflows-optin-markup.php` -- Frontend rendering, cart configuration, field handling |
| 16 |
|
| 17 |
--- |
| 18 |
|
| 19 |
## Meta Keys Identified |
| 20 |
|
| 21 |
| Key | Type | Description | |
| 22 |
|-----|------|-------------| |
| 23 |
| `wcf-optin-product` | array | Assigned product (simple, virtual, free) | |
| 24 |
| `wcf-submit-button-text` | string | Submit button text | |
| 25 |
| `wcf-optin-pass-fields` | yes/no | Pass fields as URL params | |
| 26 |
| `wcf-optin-pass-specific-fields` | string | Comma-separated field names to pass | |
| 27 |
| `wcf-optin-enable-custom-fields` | yes/no | Enable custom field editor | |
| 28 |
| `wcf-optin-fields-billing` | array | Billing field configuration | |
| 29 |
| `wcf-primary-color` | color | Primary color | |
| 30 |
| `wcf-base-font-family` | string | Base font family | |
| 31 |
| `wcf-input-fields-skins` | string | Input field style | |
| 32 |
| `wcf-input-font-family` | string | Input font family | |
| 33 |
| `wcf-input-font-weight` | string | Input font weight | |
| 34 |
| `wcf-input-field-size` | string | Input field size | |
| 35 |
| `wcf-field-tb-padding` | number | Input top/bottom padding | |
| 36 |
| `wcf-field-lr-padding` | number | Input left/right padding | |
| 37 |
| `wcf-field-color` | color | Input text color | |
| 38 |
| `wcf-field-bg-color` | color | Input bg color | |
| 39 |
| `wcf-field-border-color` | color | Input border color | |
| 40 |
| `wcf-field-label-color` | color | Input label color | |
| 41 |
| `wcf-submit-font-size` | number | Button font size | |
| 42 |
| `wcf-button-font-family` | string | Button font family | |
| 43 |
| `wcf-button-font-weight` | string | Button font weight | |
| 44 |
| `wcf-submit-button-size` | string | Button size | |
| 45 |
| `wcf-submit-tb-padding` | number | Button top/bottom padding | |
| 46 |
| `wcf-submit-lr-padding` | number | Button left/right padding | |
| 47 |
| `wcf-submit-button-position` | string | Button position (left/center/right) | |
| 48 |
| `wcf-submit-color` | color | Button text color | |
| 49 |
| `wcf-submit-hover-color` | color | Button hover text color | |
| 50 |
| `wcf-submit-bg-color` | color | Button bg color | |
| 51 |
| `wcf-submit-bg-hover-color` | color | Button bg hover color | |
| 52 |
| `wcf-submit-border-color` | color | Button border color | |
| 53 |
| `wcf-submit-border-hover-color` | color | Button border hover color | |
| 54 |
| `wcf-disable-step` | yes/no | Disable step | |
| 55 |
| `wcf-custom-script` | textarea | Custom script | |
| 56 |
|
| 57 |
--- |
| 58 |
|
| 59 |
## Ability Candidates |
| 60 |
|
| 61 |
### 1. get-optin-settings (Configuration/Read) |
| 62 |
Returns full config of an optin step: assigned product, submit button text, pass-fields settings, and billing field list. |
| 63 |
|
| 64 |
### 2. update-optin-product (Configuration/Write) |
| 65 |
Sets the WooCommerce product for the optin step (must be simple, virtual, free). |
| 66 |
|
| 67 |
### 3. update-optin-button-text (Configuration/Write) |
| 68 |
Changes the submit button text on the optin form. |
| 69 |
|
| 70 |
### 4. update-optin-pass-fields (Configuration/Write) |
| 71 |
Configures URL parameter passing: enable toggle and specific field names. |
| 72 |
|
| 73 |
--- |
| 74 |
|
| 75 |
## Rejected During Mining |
| 76 |
|
| 77 |
- **Design/styling meta** (20+ color/font/size fields): Too granular for AI agent. Visual design tweaks are page builder territory. |
| 78 |
- **Custom field editor**: Complex nested configuration requiring visual drag-drop. Not API-suitable. |
| 79 |
- **Input field skins**: Very narrow design toggle. |
| 80 |
- **Custom script**: Security concern. |
| 81 |
- **Disable step**: Generic, low incremental value. |
| 82 |
|