Skip to content
System nominalUTC --:--:--Articles 045
COURSES + FIELD NOTES 11 courses · 8 disciplines EST. 2024

From a first script to a service in production.

WPSifero publishes courses and technical writing about programming. Five language courses — Python, JavaScript and TypeScript, PHP, SQL and Go — run from your first program to the parts you only meet under real traffic. Five more go deep into WordPress and WooCommerce, because that is where the two hardest things in this trade meet: a codebase you did not write, and a database under load.

Every course is text. No video, nothing to scrub through, nothing to re-watch at half speed. You read a lesson, type the code yourself, and finish with something that runs.

Curriculum status

$ wpsifero --curriculum

[ OK ]Go 1.24+18/18
[ OK ]Node 22 LTS+18/18
[ OK ]PHP 8.3+18/18
[ OK ]Python 3.12+18/18
[ OK ]MySQL · PostgreSQL · SQLite18/18
[ OK ]WordPress 7.0 · WooCommerce 11.218/18
[ OK ]WooCommerce 11.218/18
[ OK ]WordPress 7.018/18
[ OK ]WordPress 7.0 · Redis18/18
[ OK ]WordPress 7.018/18
[ OK ]WordPress 7.0 · PHP 8.3+18/18

$ _

Courses
11
Lessons
198
Articles
045
Reading time
115H 54M
01 Sector map

What you will find here

Three shelves: the languages, the platform, and the disciplines that apply to all of it.

01 Lead transmission

This month's deep dive

Long-form work where the measurement matters more than the opinion.

Technical cover graphic for Building Order Tracking in WooCommerce Without a Tracking Subscription
Topic
WOO
Section
WooCommerce & Storefront
Published
06 OCT 2026
Reading time
7 MIN
Words
1977W

Building Order Tracking in WooCommerce Without a Tracking Subscription

Most post-purchase support tickets are "where is my order". Here is the plugin architecture that answers them without shipping customer data to a tracking service.

Ana Ferreiro · @aferreiro

WooCommerce engineering

Covers the WooCommerce order lifecycle: checkout, HPOS, session handling, transactional email and the post-purchase layer where most storefront complaints actually originate.

Read the full analysis
02 Curriculum

Courses you read, not watch

11 complete text courses, 198 lessons, no video. Written to be read at your own pace and typed out rather than copied.

02 Transmission log

Latest articles

Newest first. Every entry is tagged by discipline and carries an estimated reading time.

Blocks That Break After an Update, and Why save() Is the Reason A save() function whose output changes without a matching deprecated entry makes the editor call the block invalid. Here is the reproduction and the fix. WP 16 OCT 2026 · 8M Your Security Headers Are Not Being Sent, and WordPress Is Why Core emits frame, referrer and nosniff headers only on admin and login routes. Here is what each route actually sends, measured on WordPress 7.0.7. SEC 15 OCT 2026 · 8M 401 or 403? What the WordPress REST API Is Telling You The two codes mean different things and the difference is the debugging path. Real responses for nonces, cookies, app passwords and permission callbacks. API 12 OCT 2026 · 7M Uploads That 403, and the Permission Advice That Causes It The 755/644 advice is right in the abstract and wrong on most hosts. Here is the ownership model that decides whether uploads work in WordPress 7.0.7. INFRA 09 OCT 2026 · 8M Tracking Pages That Work When JavaScript Does Not Run A tracking page should answer the question before any script runs. That means a real form, a stable URL and a server-rendered result, with JavaScript added on top. FE 01 OCT 2026 · 8M WP-Cron Fires When a Visitor Arrives, Not When the Clock Says So WP-Cron is a request-triggered scheduler. What wp-cron.php does on a quiet site versus a busy one, and where the pattern stops being enough. WP 29 SEP 2026 · 8M Idempotency Keys for a POST Endpoint That Must Survive Retries A client that times out cannot know whether the write committed, so it retries. A unique key and a stored response are what make that retry harmless. API 24 SEP 2026 · 8M The wp_options Autoload Flag, and the Rows That Tax Every Request Autoloaded options are read on every uncached request, not only on admin screens. Here is the query that finds the expensive rows and what to do with each kind. PERF 18 SEP 2026 · 7M The Capability Checks People Forget at Three Entry Points REST routes, admin-ajax handlers and admin-post actions each need their own guard. Here is the check each one requires and why the admin menu is not protection. SEC 15 SEP 2026 · 7M
05 Operating principle

What we publish, and what we refuse to

This section exists so readers and reviewers can hold us to a stated standard.

Every claim is reproducible

Performance numbers come from a stated environment. We publish the query count, the cache state and the sample size, because a benchmark without its conditions is an advertisement rather than a measurement.

Disagreement is documented

Where a recommended pattern has a cost, that cost appears in the same article rather than a follow-up. If an approach fails past a certain order volume, we say at which volume it fails.

No undisclosed interests

WPSifero maintains its own plugins. Whenever an article touches a product we build, the relationship is disclosed inside that article, at the top, in plain language.