PluginProbe
CartFlows – Funnel Builder & Checkout Plugin for WooCommerce / 3.3.0
CartFlows – Funnel Builder & Checkout Plugin for WooCommerce v3.3.0
3.3.0 3.2.1 3.2.0 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 3.0.1 trunk 1.0.4 1.1.0 1.1.0.1 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 All 162 releases
cartflows / modules / webhook / architecture.md

architecture.md in CartFlows – Funnel Builder & Checkout Plugin for WooCommerce 3.3.0, at modules/webhook/architecture.md

18 lines 1.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 ---
2 module: webhook
3 ---
4
5 # webhook
6
7 ## Responsibility
8
9 Owns the full outbound webhook lifecycle: CRUD of webhook configs in a single `wp_options` row, mapping WordPress/WooCommerce actions to five named events, building the JSON payload, and delivering it HMAC-signed and asynchronously via Action Scheduler, with retries.
10
11 Ownership stops at the wire — it does not own the admin UI, nor the REST/AJAX endpoints that call `add_webhook` and `send_test`, nor Action Scheduler itself.
12
13 ## Why it is this way
14
15 Delivery is deliberately asynchronous and the payload is built at *dispatch* time rather than at delivery time, so a retry cannot observe a mutated order. The cost is that a retry hours later resends stale state, and that the payload — including customer PII — is persisted in the Action Scheduler args table for the life of the action log.
16
17 The 60-second dedup transient exists because two WooCommerce order statuses (`processing` and `completed`) both map to `order_completed`. It narrows the window rather than closing it, so receivers must be idempotent on `order_id` regardless.
18