How I built custom error logging in WordPress
A client had a WooCommerce checkout throwing random 500 errors while a 200MB debug log told them nothing. Here is the custom error logging setup I used to catch, count, and get alerted on new errors.
A client had a WooCommerce checkout throwing random 500 errors while a 200MB debug log told them nothing. Here is the custom error logging setup I used to catch, count, and get alerted on new errors.
A client’s WooCommerce dashboard kept timing out. The cause was a custom framework built for one low-stock widget. Here is how I replaced about a thousand lines with a short function that leans on WordPress and WooCommerce core.
A WooCommerce checkout kept failing silently while a generic PHP error monitor reported zero issues. The cause was a WP_Error the calling code never checked. Here is why WordPress needs monitoring built for it.
A WooCommerce store had a live price update that broke half the time, crammed into one function. Here is the small, reusable AJAX handler class I used to replace it, with nonce checks and clean JSON responses.
A client site was grinding to a halt because a plugin forced an MVC structure onto WordPress. Why that fights the platform, and why hooks and filters are the WordPress way.
A client WooCommerce checkout kept throwing a random fatal error. The fix was not more code, it was reading the core files first. Why reading code beats writing more of it.
A client product-filter was a maze of names like $cert_arr and get_stuff(). Reading it took longer than fixing the bug. Why clear variable naming is a professional habit, not a style preference.
Inheriting a plugin with 15 classes crammed into one 3,000-line file is a nightmare to change. How PSR-4 and an autoloader give you a WordPress plugin file structure you can actually navigate.
A client’s site had the same widget code copy-pasted twelve times. Here is how I use an abstract base class so one edit updates every widget instead of twelve.
A client’s WooCommerce product filter kept timing out. The fix was not a faster query but a custom taxonomy, and the real story is about designing instead of copy-pasting.