WordPress serverless hosting: what works and what doesn’t
Had a client call me in a full-blown panic. Their WooCommerce site went down. On Black Friday. They’d just launched a massive sale, got a…
Had a client call me in a full-blown panic. Their WooCommerce site went down. On Black Friday. They’d just launched a massive sale, got a…
I had a client with about a dozen small WordPress sites, nothing major, mostly local businesses. Every month, they wanted a simple health check report….
I got a call from a client running a membership site on a pretty old, third-party plugin. Their problem? They needed to sync a user’s…
I was working on a small security plugin a while back and decided to get it onto the official WordPress directory. But then I remembered…
Had a client come to me with a WooCommerce store that was starting to choke. They had about 30,000 products, and their admin dashboard, specifically…
A client’s Resources section had meta box code scattered across functions.php and two include files, so every small change broke something. One reusable meta box class moved the registration logic into a constructor and the form HTML into a template.
A client’s high-volume WooCommerce store kept timing out in the admin. More server power didn’t help. The real cause was an N+1 query from a shipping plugin, and the fix was better code, not bigger hosting.
A client needed niche social icons like Ko-fi and Letterboxd, which the default block doesn’t cover. WordPress 6.9 finally lets you register custom social icons cleanly with a JavaScript variation and a PHP filter, no bloated plugin required.
A plugin sold as object-oriented turned out to be one giant class full of static methods. That is not OOP, it is namespacing. Here is how to model real objects in WordPress, with state and behavior, using a Report class as the example.
A junior dev passed a post object where my function wanted an integer, and it failed silently with no error. That is the trap of overly defensive WordPress code, and when you control the environment, failing loudly beats bailing quietly.