# Apex Track Experience — WPForms & Email Pattern

Reference for Apex registration/waiver workflows. WordPress on wphost02 (5.161.62.38), MariaDB database `apextrackexperience_1781549652`.

## Forms

| Form ID | Name | Type | Notes |
|---|---|---|---|
| 270 | Track Day Registration | Paid ($1,973–$2,332) | Payment via PayPal |
| 268 | Safety Waiver | Free | Includes Assumption of Risk + Indemnification |

## Cross-Referencing Paid vs Waiver

To check who paid but hasn't signed the waiver:

```sql
-- Paid registrations (form 270)
SELECT entry_id, 
  MAX(CASE WHEN field_id=1 THEN value END) as name,  -- field 1 = name on form 270
  MAX(CASE WHEN field_id=2 THEN value END) as email  -- field 2 = email on form 270
FROM wp_wpforms_entries e
JOIN wp_wpforms_entry_fields f ON e.entry_id=f.entry_id
WHERE e.form_id=270 AND f.field_id IN (1,2)
GROUP BY e.entry_id;

-- Waivers (form 268)  
SELECT entry_id,
  MAX(CASE WHEN field_id IN (1,2) THEN value END) as email
FROM wp_wpforms_entries e
JOIN wp_wpforms_entry_fields f ON e.entry_id=f.entry_id
WHERE e.form_id=268 AND f.field_id IN (1,2)
GROUP BY e.entry_id;
```

Match by email address. A paid registrant (form 270) needs a corresponding waiver (form 268) with the same email.

## Email Configuration

- **SMTP relay:** c1113726.sgvps.net:2525 (SiteGround, NOT Core's relay)
- **Auth:** contact@apextrackexperience.com
- **Plugin:** WP Mail SMTP (configured via WordPress admin)
- **FROM address:** Apex Predators Track Experience <contact@apextrackexperience.com>
- **Inbox:** contact@apextrackexperience.com (IMAP via c1113726.sgvps.net:993)

## Known Issue (Jul 9-10, 2026)

WPForms notification emails stopped being delivered to the contact@ inbox starting Jul 9. PayPal payment notifications still arrive. SMTP relay tests pass. WPForms confirmations are intermittent — manual resends may be needed.

## Registration Summary Email Format

When sending registration/waiver summaries to the team:
- FROM: contact@apextrackexperience.com
- TO: contact@apextrackexperience.com (or g@germainebrown.com for preview)
- Format: HTML table with zebra striping (#fff / #f9f9f9), green ✓ / red ✗ status indicators
- Green checkmark: `<span style="display:inline-block;background:#22c55e;color:#fff;border-radius:4px;width:22px;height:22px;line-height:22px;text-align:center;font-size:14px;font-weight:bold;">✓</span>`
- Red X: `<span style="display:inline-block;color:#dc2626;font-size:18px;font-weight:bold;">✗</span>`
- Always preview with Germaine before sending to the team
- Strip test transactions unless explicitly asked
- Normalize names (proper case) and simplify package labels (e.g. "NASA Registration w/ Upgraded Photo/Video Package" → "Photo/Video")
