About this project
A WordPress course and membership platform for a professional training body — LearnPress for the courses, Paid Memberships Pro for access, Elementor available for marketing pages, and a hand-built theme carrying everything the visitor actually sees. The parts that matter are written in PHP rather than assembled from plugin settings: each course declares the membership level that opens it, levels are ordered so a higher tier includes everything below it, and that rule lives in one function instead of being scattered through templates. A custom REST API adds four namespaced endpoints, each with its own permission callback, typed and sanitised arguments and nonce checks on anything that writes; a Company Administrator role carries staff seats on a single company account; and the editor gets a per-course access control plus an “Opens at” column so the academy can change the rules without a developer. The site runs five assessed courses across 23 lessons with certificates on passing, three annual tiers (Associate, Practitioner and an Accredited Company plan with ten staff seats and completion reporting), a members area, a blog and a joining FAQ — with 53 test assertions covering the access gate, the endpoints’ refusals, signing in, and joining end to end. The public link is a rendered static snapshot served from Cloudflare Workers: browsing, the catalogue and the blog work from it, while accounts, enrolment and assessments run on the full PHP and MySQL installation.
Technologies: WordPress, LearnPress, Paid Memberships Pro, Custom Theme, PHP, REST API, Elementor, Cloudflare Workers