Don’t wait for the January WordPress maintenance release
A WooCommerce client hit editor errors after updating to 6.9, with the official fix scheduled for January 2026. Why rolling back was the wrong call and what we filtered instead.
A WooCommerce client hit editor errors after updating to 6.9, with the official fix scheduled for January 2026. Why rolling back was the wrong call and what we filtered instead.
A 6.9 update stripped the styling off a client’s product grids and stopped their order emails. Notes on ticket #64354, the PHPMailer bug and the adjacent post infinite loop, plus the plugins that bridge the gap until 6.9.1.
A WooCommerce store’s next-product links kept reloading the same page after an update. The cause was the WordPress 6.9 tiebreaker in get_adjacent_post(), plus a filter that only swapped the date out of the SQL.
A marketing team could not find a campaign page in Appearance > Menus. WordPress 6.9 narrowed the menu search to post titles, and one filter on wp_ajax_menu_quick_search_args brings the old behavior back.
A pre-release WordPress install killed a client’s publish button. The cause was a core bug in hidden async-upload fields, one of several things the 6.9 release candidates cleaned up alongside alternate cron and REST API errors.
A client’s booking plugin started throwing fatal errors after a theme update, because both files defined get_data(). Prefixing the function bought five minutes. Here is what proper PHP namespacing does instead.
A client’s whole API auth was a hardcoded key checked against a query parameter. Here is how I rebuild API key authentication in WordPress as a real security layer, using the REST authentication filter.
A vague “Bug fixes” changelog leaves your team guessing after an update. Clear changelogs with dated, categorized entries cut support headaches and protect your reputation.
A real case from a client site: how the WordPress 6.9 heading block CSS specificity fix changed padding on custom feature boxes, and why a proper fix beats a quick override.
A client’s membership site was buried under millions of postmeta rows from a badge plugin. Moving that data to a custom table fixed the slowdown, and here’s when it’s worth doing.