Skip to content

Fix classic WooCommerce checkout protection load order (2.10.6) - #116

Merged
cport1 merged 1 commit into
mainfrom
fix/woocommerce-checkout-load-order
Oct 21, 2026
Merged

cport1 merged 1 commit into
mainfrom
fix/woocommerce-checkout-load-order

Conversation

@cport1

@cport1 cport1 commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

Classic WooCommerce checkout silently skipped WebDecoy validation and attempt tracking when WordPress loaded WebDecoy before WooCommerce. The constructor checked class_exists('WooCommerce') before WooCommerce's entry point ran. Register these callbacks on plugins_loaded after includes load, while retaining the checkout-protection option gate. Release version: 2.10.6.

Validation: 205 dependency-free tests pass; PHP lint and shell syntax pass. The WooCommerce compatibility smoke script now asserts all three classic callbacks exist. In an isolated WordPress 7.1 / WooCommerce 11.2.1 / PHP 8.3 store, classic checkout initially accepted all four synthetic decline attempts; after the fix, attempts 1–3 reached the local decline gateway and attempt 4 was refused with “Suspicious checkout activity detected.” An independent Blocks run likewise refused attempt 4 with webdecoy_carding / 403. Separate offline normal test orders completed on both paths. No payment processor or real card was used.

@cport1
cport1 merged commit efd2635 into main Oct 21, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant