Why Your WordPress Query is a Mess (And How to Fix It)
I got a call from a client running a decent-sized WooCommerce shop. They were in a panic. Their main shop page, which should have been…
I got a call from a client running a decent-sized WooCommerce shop. They were in a panic. Their main shop page, which should have been…
Had a client call last week. They’ve got this huge, old WooCommerce plugin that’s been passed through three different dev teams. A new junior dev…
A client’s site was crawling at 5-7 seconds a page. The cause wasn’t a slow query but an uncached external API call from a plugin, which I tracked down with Query Monitor and fixed with a transient.
A legacy WooCommerce plugin had get_option and update_option calls scattered everywhere, with clashing prefixes resetting settings. The fix was one wrapper class that owns the options table and adds the prefix for you.
A client wanted a shortcode to highlight reader comments, but the inherited code crammed all the HTML into the shortcode function. Moving it into a dedicated generator class and a separate template file keeps the markup out of the PHP.
A custom events plugin where every class built its own dependencies was impossible to test or change. A small DI container built from closures gave one place to wire the objects together, without pulling in a framework.
I got a call from a client last week. Their last developer bailed, and they had a “simple” request: add a new delivery option to…
I inherited a Laravel project a while back. The client wanted a simple change: rename a few database columns for clarity. What should have been…
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…
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…