# 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 | |