/Case study — E-learning

Troy Downward

A bespoke rebuild for a guitar teacher, with student data left intact.

Melbourne guitarist Troy Downward sells courses on LearnDash and WooCommerce. The site was rebuilt on a custom theme with no page builder, client code was moved into its own plugin, and checkout, payments and ad tracking were reworked.

Troy Downward — troydownward.com · E-learning · 2026Live
Troy Downward home page on the custom theme
/Overview

About the project

Troy Downward is a Melbourne guitarist who teaches online. He wanted a bespoke redesign, and the existing students, courses and orders had to come through it untouched.

The work covered a custom theme and core plugin, then the parts around a live course business: bonus delivery, payments, sign-in and tracking for paid ads.

/Challenges — 5

What had to be solved

  • He needed a redesign without losing student data, and thousands of lines of custom PHP sat inside the parent theme, where an update could wipe them out.
  • A new Pentatonic Speed Ladder course needed a waitlist first, then delivery as a free bonus with Pentatonic Fluency.
  • Stripe webhooks were being refused because of a signing secret mismatch.
  • A cached login page caused sign-in errors for students.
  • A paid ad campaign needed reliable tracking and a way to recover abandoned checkouts.
/Solutions — 5

How it was built

  • Built a custom theme with no page builder and moved the custom code into a Troy Core plugin, leaving the live database untouched.
  • Added the waitlist form, published the 14-lesson course and added an automatic bonus panel at checkout.
  • Reconnected the Stripe integration, then added a webhook check to the site's health screen.
  • Excluded the login page from caching and purged the edge cache.
  • Built Checkout Recovery with one-use coupons, Meta Pixel and Conversions API tracking with shared event IDs, and a $0 claim checkout.
/Results — 3

What it delivered

14lessons published
  • The 14-lesson course is published, with its bonus panel built into checkout.
  • Stripe webhooks were tested after the fix and accepted again.
  • The client's custom code no longer depends on a parent theme, so theme updates cannot remove it.
Next step

Have a project like this?

Book directly into my calendar, or send the brief and I reply within one business day.