PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.36
OttoKit: All-in-One Automation Platform v1.1.36
1.1.37 1.1.36 1.1.35 1.1.34 1.1.33 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 / woocommerce-shipstation / triggers / specific-amount-order-shipped.php
suretriggers / src / Integrations / woocommerce-shipstation / triggers Last commit date
order-shipped.php 2 years ago specific-amount-order-shipped.php 2 years ago specific-product-order-shipped.php 2 years ago
specific-amount-order-shipped.php
149 lines
1 <?php
2 /**
3 * SpecificAmountOrderShipped.
4 * php version 5.6
5 *
6 * @category SpecificAmountOrderShipped
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\WoocommerceShipstation\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Traits\SingletonLoader;
18 use SureTriggers\Integrations\WordPress\WordPress;
19 use SureTriggers\Integrations\WooCommerce\WooCommerce;
20
21 if ( ! class_exists( 'SpecificAmountOrderShipped' ) ) :
22
23 /**
24 * SpecificAmountOrderShipped
25 *
26 * @category SpecificAmountOrderShipped
27 * @package SureTriggers
28 * @author BSF <username@example.com>
29 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
30 * @link https://www.brainstormforce.com/
31 * @since 1.0.0
32 *
33 * @psalm-suppress UndefinedTrait
34 */
35 class SpecificAmountOrderShipped {
36
37 /**
38 * Integration type.
39 *
40 * @var string
41 */
42 public $integration = 'WoocommerceShipstation';
43
44 /**
45 * Trigger name.
46 *
47 * @var string
48 */
49 public $trigger = 'wc_specific_amount_order_shipped';
50
51 use SingletonLoader;
52
53 /**
54 * Constructor
55 *
56 * @since 1.0.0
57 */
58 public function __construct() {
59 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
60 }
61
62 /**
63 * Register action.
64 *
65 * @param array $triggers trigger data.
66 * @return array
67 */
68 public function register( $triggers ) {
69 $triggers[ $this->integration ][ $this->trigger ] = [
70 'label' => __( 'Order For Specific Amount Shipped', 'suretriggers' ),
71 'action' => $this->trigger,
72 'common_action' => 'woocommerce_shipstation_shipnotify',
73 'function' => [ $this, 'trigger_listener' ],
74 'priority' => 99,
75 'accepted_args' => 2,
76 ];
77
78 return $triggers;
79 }
80
81 /**
82 * Trigger listener
83 *
84 * @param object $order Order.
85 * @param array $argu Arg.
86 *
87 * @return void
88 */
89 public function trigger_listener( $order, $argu ) {
90
91 if ( ! $order ) {
92 return;
93 }
94
95 if ( method_exists( $order, 'get_user_id' ) ) {
96 $user_id = $order->get_user_id();
97 if ( 0 === $user_id ) {
98 return;
99 }
100
101 if ( method_exists( $order, 'get_id' ) ) {
102 $order_id = $order->get_id();
103
104 $order_detail = WooCommerce::get_order_context( $order_id );
105 if ( is_array( $order_detail ) ) {
106 $context = array_merge(
107 $order_detail,
108 WordPress::get_user_context( $user_id )
109 );
110
111 if ( method_exists( $order, 'get_total' ) ) {
112 $order_total = $order->get_total();
113 $context['price'] = $order_total;
114 }
115
116 $context['shipping_tracking_number'] = $argu['tracking_number'];
117 $context['shipping_carrier'] = $argu['carrier'];
118 $timestamp = strtotime( (string) $argu['ship_date'] );
119 /**
120 *
121 * Ignore line
122 *
123 * @phpstan-ignore-next-line
124 */
125 $date = date_i18n( get_option( 'date_format' ), $timestamp );
126 $context['ship_date'] = $date;
127
128 AutomationController::sure_trigger_handle_trigger(
129 [
130 'trigger' => $this->trigger,
131 'wp_user_id' => $user_id,
132 'context' => $context,
133 ]
134 );
135 }
136 }
137 }
138 }
139 }
140
141 /**
142 * Ignore false positive
143 *
144 * @psalm-suppress UndefinedMethod
145 */
146 SpecificAmountOrderShipped::get_instance();
147
148 endif;
149