It’s yet another Saturday, and this morning I’m speaking at WordCamp Italia for the second year in a row. I’m delighted my talk was selected and I hope the topic will interest many attendees.
I will be streaming live from my own office home so I have to rely on two very unlikely events: that my internet doesn’t go down, and that my 10-months old son doesn’t cry.
Anyhow, while I’m here (not) rehearsing my talk and testing my microphone and video setup, I’m actually thinking at the exact reason why I pitched that talk.
Finding an “excuse” to create a new online course
I’ve had no time since Lorenzo was born. I’ve got a new house to renovate and move to. I’ve got to keep some social life going. I’ve got to sleep. I’ve got to work with clients, and develop my own business…
I could list excuses for a living.
The thing is, online courses are the real deal, and if I am to grow Business Bloomer revenue, I need to create and publish more of them. CustomizeWoo, ConfigureWoo and TroubleshootWoo are simply not enough if I am to become the “Netflix for WooCommerce developers“.
Yes, to be honest with you I submitted that WordCamp talk so that I could start putting some content together for my next course.
Another way of saying it: “fine, I need to prepare some slides for a WordCamp, but I’m basically writing the basis of my next online course“.
As you can see, this works very well in regard to motivation. In Italian we say “You wanted a bike. Now get pedaling!“, so I’m “using” this WordCamp opportunity to get rid of my daily excuses and get recording, launching and selling.
Choosing the online course topic
Rodolfo, how do you choose the topics for your online courses? – you may be asking.
Well, it’s very easy.
I simply think at what I struggled the most during my career as a self-taught WooCommerce developer, and come up with courses that would have helped me immensely at the very beginning, so that I could have saved weeks, months, maybe years.
CustomizeWoo is basically covering the ins and outs of WooCommerce customization, which is my daily job as a freelancer. It organizes information such as hooks, WooCommerce templates and snippets in a way that it’s easier to understand the “HOW”.
ConfigureWoo was born because not many developers actually get to deeply study the inbuilt WooCommerce settings before installing yet another plugin. Combined with CustomizeWoo skills, you can achieve great things and avoid purchasing expensive extensions.
TroubleshootWoo used to be a CustomizeWoo module, but one thing is customization and another is fixing a broken WooCommerce site. I had to dig deeper into PHP / JS / CSS errors, describe how to handle them and finally suggest ways to prevent a WooCommerce site from going down.
These 3 courses would have made me save soooo much time at the beginning of my WooCommerce learning.
That’s why I created them.
Now, I’ve always wanted to fill another gap: in order to customize WooCommerce you need HTML, CSS, PHP and JavaScript skills (in that order).
So even before CustomizeWoo, you must understand PHP, which is the programming language used by WordPress, WooCommerce, themes and plugins in order to function.
Choosing the online course angle, and title
PHP sounds cool, but there are millions of PHP online courses out there, and many are free (w3schools’ one rocks).
So, if I wish to make a unique, premium online course I first need to find a niche.
And WooCommerce sounds just like that.
The idea behind this match (WooCommerce + PHP) is very simple: if we learn PHP, and also study WooCommerce PHP functions, we’re ready to move to the next step – customization.
A unique course requires also a unique name and a simple domain name (I prefer to stick with .COM extension, as I believe it’s more professional, memorable and valuable):
- CustomizeWoo -> customizewoo.com
- TroubleshootWoo -> troubleshootwoo.com
- ConfigureWoo -> configurewoo.com
- (new course re: WooCommerce PHP) -> ???
I’ve always used the formula “do something…” (configure, customize…) followed by “Woo” to communicate a specific action applied to a certain target (WooCommerce, indeed), so I’d like to keep it that way this time as well.
However, there is no verb for the PHP noun as long as I know (let’s php that!) so I need to change that slightly.
Of course, and for obvious reasons, before I hit “publish” on this post I purchased the domain name, so I’ll simply document my Namecheap domain search history.
First attempt:

Pity, phpwoo.com would have been short, memorable and perfectly balanced between “PHP” and “WooCommerce.
Second try…
Based on Zac Gordon popular JavaScript online courses for WordPress website, I decided to add a preposition in between:

Please note, I could have chosen the number “4” instead, but that doesn’t resonate with “premium”; “for” is much more professional.
I got lucky this time 🙂
Outlining “PHP for Woo” online course
Name chosen, domain purchased (phpforwoo.com), DNS set up, 301 redirect to Business Bloomer online course sale page done, graphic designer emailed.
Now to the most interesting part of the course setup: writing the outline, defining modules, naming and outlining each lesson, and finally laying out the exam and designing the certificate.
Not a 5 minute thing alright, but the experience I gained with my previous online courses should help me move faster towards the recording and editing phase.
Outline
I usually write outlines by following a simple pattern: from ZERO (introduction, definitions) to SUCCESS (list of new skills the student should get) so I’d basically start with the latter.
To me, a student that takes the “PHP for Woo” course will gain the following skills:
- (PHP) difference between static and dynamic HTML
- (PHP) what PHP can do (write DB, save <form>, etc.)
- (PHP) versions e.g. PHP 8 vs PHP 7
- (PHP) syntax: script, statement, function
- (PHP) required tools: code editor, hosting, FTP
- (PHP) variables: names, types, assignment, operators
- (PHP) statements: if/else, foreach, etc.
- (PHP) built-in functions: date(), etc.
- (PHP) custom functions: names, arguments, echo, return
- (PHP) goal: create first PHP file e.g. custom form
- (WP) where PHP is used e.g. templates, core, etc.
- (WP) built-in PHP functions: the_title(), get_header(), etc.
- (WP) custom functions: child themes, functions.php
- (WP) hooks: actions, filters
- (WP) the “query” and the “loop”
- (WP) access data from database
- (WP) goal: create custom footer (prefooter, copyright, social, etc.)
- (Woo) template structure, archives, loops
- (Woo) built-in functions, hooks (front- and backend), conditionals
- (Woo) custom functions: add / remove / edit content
- (Woo) advanced functions: programmatically do X when Y triggers
- (Woo) goal: create custom product template
That’s what I came up with so far. Got any feedback for me?
Modules
Modules are the obvious consequence of defining the outline. It sort of comes naturally.
Based on the above I could split phpforwoo.com in 7 modules:
- Introduction to PHP: definitions, syntax
- PHP programming: writing functions
- PHP for WordPress: templates and built-in functions
- WordPress PHP programming: hooks, query, SQL
- PHP for WooCommerce: templates and built-in functions
- WooCommerce PHP programming: hooks, triggers
- Exam & certificate
Organizing a course in modules helps the student experience, as it’s easier to go through 7 modules with 10 lessons each as opposed to taking 70 lessons.
I will do a bit of revising with that, but at least I’ve got something to start with.
Lessons
With the outline almost signed off and the modules almost decided, lessons will follow easily. I tend to record ~10 mins lessons so I will first sign off the outline and modules and then come up with the list of lessons, their titles, and some bullet points for each one so that I know exactly what they’ll cover.
Besides, I will need to specify whether a lesson requires a Presentation or not (in case of live demo / live code).
For now, I’ll stop working here as I need to keep working on the outline and modules before moving forward, otherwise I risk to waste my time.
If you want to follow my work as I build PHP for Woo, feel free to follow me on Twitter or:
You have another course described in this post! It’s called “How to create a online course in any subject”.
Ah ah thank you Roy!