PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.32
OttoKit: All-in-One Automation Platform v1.1.32
1.1.32 1.1.31 1.1.30 1.1.29 1.1.28 1.1.27 1.1.9 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 1.0.39 1.0.40 1.0.41 1.0.42 1.0.43 1.0.44 1.0.45 1.0.46 1.0.47 1.0.48 1.0.49 1.0.50 1.0.51 1.0.52 1.0.53 1.0.54 1.0.55 1.0.56 1.0.57 1.0.58 1.0.59 1.0.60 1.0.61 1.0.62 1.0.63 1.0.64 1.0.65 1.0.66 1.0.67 1.0.68 1.0.69 1.0.7 1.0.70 1.0.71 1.0.72 1.0.73 1.0.74 1.0.75 1.0.76 1.0.77 1.0.78 1.0.79 1.0.8 1.0.80 1.0.81 1.0.82 1.0.83 1.0.84 1.0.85 1.0.86 1.0.87 1.0.88 1.0.89 1.0.9 1.0.90 1.1.0 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 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
suretriggers / src / Integrations / fluentcart / actions / update-order-status.php
suretriggers / src / Integrations / fluentcart / actions Last commit date
create-coupon.php 6 months ago create-customer.php 6 months ago delete-coupon.php 6 months ago delete-customer.php 6 months ago get-customer.php 6 months ago get-order.php 6 months ago get-product.php 6 months ago list-customers.php 6 months ago list-products.php 6 months ago update-order-status.php 6 months ago
update-order-status.php
148 lines
1 <?php
2 /**
3 * UpdateOrderStatus.
4 * php version 5.6
5 *
6 * @category UpdateOrderStatus
7 * @package SureTriggers
8 * @author BSF <username@example.com>
9 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
10 * @link https://www.brainstormforce.com/
11 * @since 1.0.0
12 */
13
14 namespace SureTriggers\Integrations\FluentCart\Actions;
15
16 use SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Traits\SingletonLoader;
18 use FluentCart\App\Models\Order;
19
20 /**
21 * UpdateOrderStatus
22 *
23 * @category UpdateOrderStatus
24 * @package SureTriggers
25 * @author BSF <username@example.com>
26 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
27 * @link https://www.brainstormforce.com/
28 * @since 1.0.0
29 */
30 class UpdateOrderStatus extends AutomateAction {
31
32 /**
33 * Integration type.
34 *
35 * @var string
36 */
37 public $integration = 'FluentCart';
38
39 /**
40 * Action name.
41 *
42 * @var string
43 */
44 public $action = 'fluentcart_update_order_status';
45
46 use SingletonLoader;
47
48 /**
49 * Register a action.
50 *
51 * @param array $actions actions.
52 * @return array
53 */
54 public function register( $actions ) {
55 $actions[ $this->integration ][ $this->action ] = [
56 'label' => __( 'Update Order Status', 'suretriggers' ),
57 'action' => $this->action,
58 'function' => [ $this, 'action_listener' ],
59 ];
60 return $actions;
61 }
62
63 /**
64 * Action listener.
65 *
66 * @param int $user_id user_id.
67 * @param int $automation_id automation_id.
68 * @param array $fields fields.
69 * @param array $selected_options selectedOptions.
70 *
71 * @return array|void
72 *
73 * @throws \Exception Exception.
74 */
75 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
76 if ( ! class_exists( '\FluentCart\App\Models\Order' ) ) {
77 return [
78 'status' => 'error',
79 'message' => __( 'FluentCart is not installed or activated.', 'suretriggers' ),
80 ];
81 }
82
83 $order_id = isset( $selected_options['order_id'] ) ? $selected_options['order_id'] : '';
84 $new_status = isset( $selected_options['new_status'] ) ? $selected_options['new_status'] : '';
85
86 if ( empty( $order_id ) ) {
87 return [
88 'status' => 'error',
89 'message' => __( 'Order ID is required.', 'suretriggers' ),
90 ];
91 }
92
93 if ( empty( $new_status ) ) {
94 return [
95 'status' => 'error',
96 'message' => __( 'Order status is required.', 'suretriggers' ),
97 ];
98 }
99
100 try {
101 $order = Order::find( $order_id );
102
103 if ( ! $order ) {
104 return [
105 'status' => 'error',
106 'message' => __( 'Order not found.', 'suretriggers' ),
107 ];
108 }
109
110 $old_status = $order->status;
111
112 // Update order status.
113 $valid_statuses = [ 'processing', 'completed', 'on-hold', 'canceled', 'failed' ];
114 if ( ! in_array( $new_status, $valid_statuses ) ) {
115 return [
116 'status' => 'error',
117 'message' => sprintf( __( 'Invalid order status. Valid statuses are: %s', 'suretriggers' ), implode( ', ', $valid_statuses ) ),
118 ];
119 }
120 $order->status = $new_status;
121
122 $order->save();
123
124 // Fire WordPress action for status change.
125 if ( $old_status !== $order->status ) {
126 do_action( 'fluent_cart_order_status_changed', $order, $old_status, $order->status );
127 }
128
129 $context = [
130 'order_id' => $order->id,
131 'old_status' => $old_status,
132 'new_status' => $order->status,
133 'total_amount' => $order->total_amount,
134 ];
135
136 return $context;
137
138 } catch ( \Exception $e ) {
139 return [
140 'status' => 'error',
141 'message' => $e->getMessage(),
142 ];
143 }
144 }
145 }
146
147 UpdateOrderStatus::get_instance();
148