Update: The minimum requirement for PHP has been reset to version 7.4, CoCart Plus 1.6.1 provides the reset – read why the revert for more
CoCart Plus 1.6.0 is ready, and it brings login security, richer product data, and a batch of REST API fixes worth knowing about before you upgrade. Here’s what’s changed.
Two-Factor Authentication support
CoCart Plus now supports Two-Factor Authentication during login. If your store already uses a 2FA plugin to protect customer or admin accounts, that same protection now extends to the CoCart login endpoint — no separate configuration needed on the API side.
This requires CoCart Community 4.6 or later. Full usage details are in the 2FA documentation.
Advanced Custom Fields: full product data
If you’re running Advanced Custom Fields alongside CoCart, the Products API now returns all of your ACF fields, not a partial set. If you’ve been working around missing fields on the frontend, you can drop that workaround with this release.
Add a coupon while adding an item
You can now pass a coupon code directly on an add-to-cart request instead of making a second call to apply it afterward — one less round trip for a common checkout pattern.
curl --request POST \
--url https://example-store.com/wp-json/cocart/v2/cart/add-item \
--header 'Content-Type: application/json' \
--data '
{
"id": "123",
"quantity": "1",
"coupon": "10OFF"
}
'Licensing and updates

- License activation has been rebuilt around Polar and now supports Polar customers only.
- Pausing updates: if you need a window of stability during a big sale, you can now pause plugin updates for a set period instead of turning off update checks entirely.
- Translations now update automatically, so localized stores stay current without a manual step.
Improvements
- REST requests are a little faster — admin-only content no longer loads in the background on every API call.
- Chosen shipping method and available packages now reset before a customer’s shipping address is set, rather than after, avoiding stale shipping state.
- The Global Rate Limit can now be configured directly in
wp-config.php, so it’s set once at the infrastructure level instead of per-environment in the dashboard. See the rate limiting documentation for the constants involved. - The WordPress dashboard got a semantic markup pass for better screen reader support.
Bug fixes
This release closes out a real cluster of REST API bugs, several of which were long-standing and only surfaced once we added proper test coverage for the plugin’s v1 controllers:
/customernow actually responds. This endpoint has existed in the codebase since CoCart Plus 1.0.0, but it was never registered with the REST API — every request to it 404’d. It’s wired up now.POST /calculate?return=truereturns clean totals. It was previously double-wrapping the response, so instead of a flat totals object you’d get one response nested inside another./totals/taxno longer errors. The route was registered but its handler method didn’t exist — every call to it failed. It’s implemented now.- Cross Sells no longer warns on products without a thumbnail. A missing product image used to trigger a PHP warning; it now degrades gracefully.
- Setting a payment method no longer triggers a PHP warning caused by a missing type declaration on the request schema.
- Shipping address validation is more reliable. Updating shipping country, postcode, or phone with invalid data used to fail silently and revert to the old value — you’ll now get a real error instead of silent data loss.
- Shipping address mirroring fixed. Submitting billing-only details used to leave shipping address fields blank; billing now correctly mirrors to shipping when
ship_to_different_addressisn’t set, matching how WooCommerce’s own checkout behaves. - Shipping reset no longer runs redundantly.
reset_shipping()was being called on every field iteration instead of once before the loop — harmless but wasteful; now it only runs once. - Fixed a fatal error that could occur when
override_totals()ran beforeWC()->cartwas initialized.
Compatibility and requirements
- Tested up to WordPress 7.1
- Tested with WooCommerce 11.0
- CoCart Community 4.6 minimum required going forward
- PHP 8.2 is now the minimum required version. PHP 7.4, 8.0, and 8.1 are all past end-of-life and no longer tested against. If you’re still on one of those, this is the release to plan your PHP upgrade around — 8.2 is also faster and more secure.
Upgrading
This is a standard upgrade — no breaking changes to the REST API surface, just fixes and additions.

