https://learningiscreated.org/

Project Info

  • Role

    WordPress Developer

  • Type

    Client Project

  • Duration

    Ongoing support

  • Tech Stack

    WordPress, LearnDash, WooCommerce Subscriptions, PHP

  • Tools

    Debug logging, Custom mu-plugins, WordPress Hooks/Filters

  • Impact

    Resolved critical integration issues between LearnDash and WooCommerce Subscriptions, ensuring reliable user enrolment, subscription renewals, and group leader role management for a compliance training platform serving multiple organisations.

A B2B compliance training platform built on WordPress, LearnDash, and WooCommerce Subscriptions. I was brought in to resolve critical integration issues affecting user enrolment, subscription renewals, and group leader functionality.

Project Summary

Learning Is Created delivers HIPAA, OSHA, and workplace compliance training to organisations through a subscription-based LMS. The platform relies on tight integration between LearnDash (course delivery), WooCommerce Subscriptions (billing and access management), and group leader functionality (allowing managers to assign training to their teams). I diagnosed and resolved complex multi-plugin conflicts that were disrupting the client’s core business operations.

The platform was experiencing intermittent failures where group leaders would lose their administrative roles during subscription renewal events. This broke the client’s business model — organisations paying for team training suddenly couldn’t manage their users. The issue stemmed from conflicting hooks between WooCommerce Subscriptions and LearnDash Groups, compounded by timing issues in how user roles were being reassigned during renewal processing.

 

The Solution

Through systematic debug logging and hook analysis, I traced the root cause to a race condition in how subscription status changes triggered role updates. I developed a custom mu-plugin solution that intercepts the renewal process and ensures group leader roles are preserved and correctly reassigned after WooCommerce completes its status update cycle.

  • Comprehensive debug logging to trace multi-plugin interactions
  • Custom mu-plugin to manage role preservation during subscription events
  • Hook priority adjustments to resolve processing order conflicts
  • Testing across multiple subscription scenarios (renewals, upgrades, cancellations)
  • Documentation of the fix for ongoing maintenance

Technical Breakdown

  • Platform: WordPress with LearnDash LMS and WooCommerce Subscriptions
  • Core Issue: Race condition between subscription renewal hooks and LearnDash group role assignment
  • Solution: Custom mu-plugin intercepting woocommerce_subscription_status_updated with adjusted hook priorities
  • Testing: Simulated renewal cycles, manual role checks, and log verification across user types
  • Documentation: Annotated code and process notes for future developers

Results

  • Group leaders now retain roles reliably through all subscription lifecycle events
  • Zero reported enrolment or access issues since implementation
  • Client can confidently onboard new organisations without manual role fixes
  • Reduced support overhead from recurring “lost access” tickets

Planned Improvements

  • Automated monitoring to flag any future role assignment anomalies
  • Enhanced logging dashboard for subscription event tracking
  • Performance audit of database queries during bulk enrolment operations

Stephen Pashley

Developer - Creator

Stephen Pashley
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.