Skip to content
System nominalUTC --:--:--Articles 071
WP TRACK Intermediate to advanced

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
0 of 18 complete0%

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 KB

The 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

MODULE 01

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

MODULE 02

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

MODULE 03

The admin side

Menus and screens, capability gates, the Settings API, AJAX endpoints, nonces and screen-conditional assets.

3 lessons · 1H 30M

MODULE 04

The public side

Shortcodes, template loading and overrides, REST routes for couriers and trackers, and the frontend asset budget.

3 lessons · 1H 20M

MODULE 05

Security and language

Nonces against capabilities, escaping across a template boundary, and internationalisation from POT to plural forms.

3 lessons · 1H 30M

MODULE 06

Shipping

Versioning and upgrade routines, readme.txt, the wordpress.org submission and SVN, support and deprecation.

3 lessons · 1H 35M

Go deeper

Articles that pair with this course