# TeachDemy Child Theme — Deployment Guide (v26)

## What's new in v26 (client's 46-item batch)

### Global
- Footer location: "BC, Canada" (item 1). Header nav: "Experience" -> "Upcoming" (item 6).
- Roles: customer + tdp_student display as "Learner"; new registrations default to
  the Learner (tdp_student) role (item 2).
- Email identity unified: from-name "TeachDemy", wordpress@ -> no-reply@site
  (domain-aligned for SPF), WooCommerce email colors branded (item 4).
  For spam-folder fixes configure SPF/DKIM/DMARC — see UPGRADE-GUIDE-FA.md.
- Legacy "Become an Instructor" auto-mails are fully BLOCKED via the
  pre_wp_mail filter; internal Teach Demy Plus mails carry X-TDP-Internal
  and are exempt (item 16).
- Login + registration attempt limit: 10 per 15 min per IP (was 20) (item 41).
- On mobile, login/registration redirects to Home instead of My Account (item 42).
- Admin users list: "Registered" column, default sort = newest, A-Z mode
  selector (item 5).

### Public AJAX endpoints (used by the page templates)
- tdp_waitlist_subscribe (guests allowed): Notify-Me + Join-Waitlist
  (pre-sale, discount via filter tdp_presale_discount, default 20%).
  When an upcoming course is unchecked+published, everyone on its list is
  emailed automatically (item 25).
- tdp_contact_message (guests allowed): contact form with admin
  notification (Reply-To visitor) + visitor acknowledgement (item 30).
- Both are rate-limited and store entries in private CPTs
  (tdp_waitlist / tdp_contact_message).
- window.tdpPublic {ajaxUrl, nonce} is printed in the footer of every page.

### Checkout (item 29)
- billing_phone required with watermark description.
- Required "video watermark" consent checkbox; phone+address snapshot is
  saved on the order and shown in the admin order view (Spot Player use).
- Wallet balance notice on checkout when the Account Funds plugin is active.
- Crypto (USDT) coming-soon notice (filter tdp_crypto_coming_soon to hide).

### Single course page (item 23)
- "Introduction video URL" field on the product's TeachDemy tab; renders as
  an embedded video (YouTube/Vimeo or MP4) on the course page.
- "Meet Your Instructor" box: photo, name, auto-counted learners
  (completed orders, cached 1h), Show Profile link.

### Pages
- page-disciplines.php = the Categories page (14 categories, auto counts,
  A-Z filter, icons, hover highlight) (item 24).
- page-upcoming.php = Notify Me + Join Waitlist + instructor info +
  "Want to Become an Instructor" CTA (item 25).
- front-page.php = Text.docx hero copy, avatars, real-course sections,
  link audit (item 26).
- page-affiliate.php = centered highlight + real CTAs (item 27).
- page-contact.php = guest form wired to tdp_contact_message (item 30).
- page-courses.php = Engineering Learning, 14-category dropdown, All level,
  All/New/Best-Sellers chips, upcoming section, search bar (item 31).
- page-faq.php = permanent-access Q&A per Text.docx, avatars (item 32).
- page-mentor-support.php = Support Period wording, $89 + time picker
  removed, Verified Expert colors fixed, $tdp_plans filter (29/79/149),
  live summary panel, real checkout link ?tdp_support_plan=X (item 33).
- privacy/refund/terms = distinct openings, production notes removed,
  Refund Eligibility removed (item 34).
- page-become-instructor.php = the 4-step application wizard powered by
  the plugin's TDP_Instructor_Application module (items 15/16/17).
- About/Our-Mission = organization logo wall + team affiliation chips (item 39).

## Installation Steps

1. Upload the theme: WordPress Admin -> Appearance -> Themes -> Add New ->
   Upload Theme -> choose woodmart-child-v26.1.zip -> Install Now ->
   Activate (replaces the whole theme folder).
2. Upload the plugin: Plugins -> Add New -> Upload Plugin ->
   teach-demy-plus-v16.zip -> Install -> Activate.
3. Settings -> Permalinks -> Save (no changes needed) once.
4. Open the new admin pages once so menus register:
   "Instructor Applications" (Google Sheets settings live there),
   "Learners", "Instructors".
5. Clear every cache layer: caching plugin, WoodMart cache, host/CDN,
   then hard-refresh (Ctrl/Cmd+Shift+R).
6. Read UPGRADE-GUIDE-FA.md (Persian) for post-install configuration:
   Google Sheets webhook, profanity word tiers, DNS records (SPF/DKIM/DMARC),
   OpenAI setup, and the external-storage options for the 5 GB limit.

## Page Status

| Page | Status | Notes |
|------|--------|-------|
| Home | OK | Text.docx copy + real courses |
| Courses | OK | Auto template on /courses/ + Shop |
| Disciplines/Category | OK | Assign template to /disciplines/ |
| Upcoming | OK | Notify Me + Waitlist live |
| Become Instructor | OK | 4-step wizard (requires plugin) |
| Mentor Support (Overview) | OK | Plan cards + live summary |
| Contact | OK | Guest form live |
| FAQ / Terms / Privacy / Refund | OK | |
| Affiliate | OK | CTAs wired |
| Instructors / Single Instructor | OK | |
| Checkout | OK | Consent + wallet + crypto notice |
| My Account | OK | Chat + Affiliate dashboard upgrades (plugin side) |
| 404 / Blog | OK | |
