Building the Sifero Courier Timeline Plugin
Build a real WooCommerce plugin from bootstrap to wordpress.org, using the Sifero Courier Timeline source as the worked example at every step.
- Modules
- 06
- Lessons
- 18
- Reading time
- 8H 50M
- Words
- 35,578
What you will be able to do
- Read an unfamiliar plugin and describe what it does before running it.
- Bootstrap a plugin that depends on WooCommerce without breaking the site when it is absent.
- Create custom tables with dbDelta and write upgrade routines that are safe to run twice.
- Build admin screens with the Settings API, real capability checks and nonces.
- Register REST routes, shortcodes and template overrides that a theme can replace.
- Escape data across a template boundary and get internationalisation right from the first string.
- Ship a version with readme.txt that passes the wordpress.org submission checklist.
Before you start
Working knowledge of PHP and some familiarity with WordPress as a site owner. A local WordPress 7.0 with WooCommerce 11.2, and the plugin source to read alongside.
The source this course reads
Download the plugin · 208 KBThe free build, GPLv2 or later, exactly as it ships. Install it with Plugins → Add New → Upload Plugin, or drop the folder into wp-content/plugins. It needs WordPress 6.2 or newer and WooCommerce. Read the lessons with the source open beside you; every code listing in the course is a real excerpt from these files.
sha256 efaff4e3fa8719d9a1c3663f4d8cc57f37414d15770d14ba59cf3df6fddd60f8
Most plugin tutorials build a plugin that does one thing and has no users. This course does the opposite: it takes a plugin that ships, sells, and runs on other people's stores, and walks through every decision in it. The subject is the Sifero Courier Timeline for WooCommerce plugin, which adds courier companies, order tracking and public shipment status pages to a WooCommerce store.
That choice changes what the lessons can teach. A toy plugin never has to answer the questions this one does. What happens when someone activates it before WooCommerce? Which queries actually run on a store with fifty thousand orders? Where does the capability check go on a screen that three different roles can reach? How do you change a table schema on a site you cannot take offline? Every lesson answers a question the source code had to answer first, and quotes the code that answers it.
The reference material is the official WordPress documentation: the Plugin Handbook, the REST API Handbook, the Internationalization guidelines, the Coding Standards and the Theme Handbook's template-override rules. Where the documentation and the source disagree, the lesson says so and shows what the code does.
You will need the plugin source. It is GPL-licensed, which means you can read it, copy from it, and ship your own version of anything in it. Parts of it are quoted throughout the course under that licence.
Curriculum
6 modules, 18 lessons
The plugin as a program
The bootstrap file, constants, load order, and depending on WooCommerce without taking the site down with you.
3 lessons · 1H 25M
Data that outlives the request
Custom tables with dbDelta, indexes that match the queries, options, transients, upgrade routines and multisite installs.
3 lessons · 1H 30M
The admin side
Menus and screens, capability gates, the Settings API, AJAX endpoints, nonces and screen-conditional assets.
3 lessons · 1H 30M
The public side
Shortcodes, template loading and overrides, REST routes for couriers and trackers, and the frontend asset budget.
3 lessons · 1H 20M
Security and language
Nonces against capabilities, escaping across a template boundary, and internationalisation from POT to plural forms.
3 lessons · 1H 30M
Shipping
Versioning and upgrade routines, readme.txt, the wordpress.org submission and SVN, support and deprecation.
3 lessons · 1H 35M
Go deeper