feat: Add all WooCommerce order status events

Added missing order status events that were not showing in admin UI.

New Events Added (Staff + Customer):
- Order On-Hold (awaiting payment)
- Order Failed (payment/processing failed)
- Order Refunded (full refund processed)
- Order Pending (initial order state)

Changes:
1. EventRegistry.php - Added 8 new event definitions
2. DefaultTemplates.php - Added 8 new email templates
3. DefaultTemplates.php - Added subject lines for all new events

Now Available in Admin:
- Staff: 11 order events total
- Customer: 12 events total (including new customer)

All events can be toggled on/off per channel (email/push) in admin UI.
This commit is contained in:
dwindown
2025-11-18 23:10:46 +07:00
parent 88de190df4
commit d3e36688cd
2 changed files with 311 additions and 0 deletions

View File

@@ -97,6 +97,42 @@ class EventRegistry {
'wc_email' => '',
'enabled' => true,
],
'order_on_hold' => [
'id' => 'order_on_hold',
'label' => __('Order On-Hold', 'woonoow'),
'description' => __('When order is awaiting payment', 'woonoow'),
'category' => 'orders',
'recipient_type' => 'staff',
'wc_email' => '',
'enabled' => true,
],
'order_failed' => [
'id' => 'order_failed',
'label' => __('Order Failed', 'woonoow'),
'description' => __('When order fails', 'woonoow'),
'category' => 'orders',
'recipient_type' => 'staff',
'wc_email' => 'failed_order',
'enabled' => true,
],
'order_refunded' => [
'id' => 'order_refunded',
'label' => __('Order Refunded', 'woonoow'),
'description' => __('When order is refunded', 'woonoow'),
'category' => 'orders',
'recipient_type' => 'staff',
'wc_email' => '',
'enabled' => true,
],
'order_pending' => [
'id' => 'order_pending',
'label' => __('Order Pending', 'woonoow'),
'description' => __('When order is created (pending payment)', 'woonoow'),
'category' => 'orders',
'recipient_type' => 'staff',
'wc_email' => '',
'enabled' => true,
],
// CUSTOMER EVENTS
'order_placed_customer' => [
@@ -171,6 +207,42 @@ class EventRegistry {
'wc_email' => 'customer_new_account',
'enabled' => true,
],
'order_on_hold_customer' => [
'id' => 'order_on_hold',
'label' => __('Order On-Hold', 'woonoow'),
'description' => __('When order is awaiting payment', 'woonoow'),
'category' => 'orders',
'recipient_type' => 'customer',
'wc_email' => 'customer_on_hold_order',
'enabled' => true,
],
'order_failed_customer' => [
'id' => 'order_failed',
'label' => __('Order Failed', 'woonoow'),
'description' => __('When order fails', 'woonoow'),
'category' => 'orders',
'recipient_type' => 'customer',
'wc_email' => 'customer_failed_order',
'enabled' => true,
],
'order_refunded_customer' => [
'id' => 'order_refunded',
'label' => __('Order Refunded', 'woonoow'),
'description' => __('When order is refunded', 'woonoow'),
'category' => 'orders',
'recipient_type' => 'customer',
'wc_email' => 'customer_refunded_order',
'enabled' => true,
],
'order_pending_customer' => [
'id' => 'order_pending',
'label' => __('Order Pending', 'woonoow'),
'description' => __('When order is created (pending payment)', 'woonoow'),
'category' => 'orders',
'recipient_type' => 'customer',
'wc_email' => '',
'enabled' => true,
],
];
/**