Every WordPress release means editing the same header line in every plugin readme, and doing it by hand is how one of them ends up claiming compatibility with…
The object cache is per-request by default and persistent with a drop-in, and either way the cache group is what keeps two plugins from using the same key…
Options, tables, scheduled events, user meta and post meta all survive deactivation and deletion unless the plugin explicitly removes them, and most do not. The constant check is…
Orders live in wp_posts with their data in wp_postmeta, which means a shop with two hundred thousand orders has a postmeta table with several million rows shared with…
Reading $product->id or $order->billing_email has worked since the plugin existed, because they were public properties on an object wrapping a post. 3.0 makes them private with a magic…
Plugins offering to “disable the REST API” hook rest_authentication_errors and return an error for unauthenticated requests, which is a restriction rather than a removal — the routes still…
Products have always been posts, which is why a catalogue of any size ends up fighting wp_postmeta. The CRUD layer puts a data store between the object and…