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-bookings / triggers / booking-created.php
suretriggers / src / Integrations / woocommerce-bookings / triggers Last commit date
booking-created.php 2 years ago booking-status-changed.php 2 years ago
booking-created.php
131 lines
1 <?php
2 /**
3 * BookingCreated.
4 * php version 5.6
5 *
6 * @category BookingCreated
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\WoocommerceBookings\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Traits\SingletonLoader;
18 use SureTriggers\Integrations\WordPress\WordPress;
19 use WC_Booking;
20
21 if ( ! class_exists( 'BookingCreated' ) ) :
22
23 /**
24 * BookingCreated
25 *
26 * @category BookingCreated
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 BookingCreated {
36
37 /**
38 * Integration type.
39 *
40 * @var string
41 */
42 public $integration = 'WoocommerceBookings';
43
44 /**
45 * Trigger name.
46 *
47 * @var string
48 */
49 public $trigger = 'wc_booking_created';
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' => __( 'Booking Created', 'suretriggers' ),
71 'action' => $this->trigger,
72 'common_action' => 'woocommerce_new_booking',
73 'function' => [ $this, 'trigger_listener' ],
74 'priority' => 10,
75 'accepted_args' => 1,
76 ];
77
78 return $triggers;
79 }
80
81 /**
82 * Trigger listener
83 *
84 * @param int $booking_id Booking ID.
85 *
86 * @return void
87 */
88 public function trigger_listener( $booking_id ) {
89
90 if ( '' == $booking_id ) {
91 return;
92 }
93
94 if ( class_exists( 'WC_Booking' ) ) {
95 $booking = new WC_Booking( $booking_id );
96 $person_counts = $booking->get_person_counts();
97 $bookable_product_id = $booking->get_product_id();
98 if ( method_exists( $booking, 'get_data' ) ) {
99 $booking = $booking->get_data();
100 $booking['start'] = gmdate( 'Y-m-d H:i:s', $booking['start'] );
101 $booking['end'] = gmdate( 'Y-m-d H:i:s', $booking['end'] );
102 if ( ! empty( $person_counts ) ) {
103 $total_count = 0;
104 foreach ( $person_counts as $key => $value ) {
105 $total_count += $value;
106 }
107 $booking['total_person_counts'] = $total_count;
108 }
109 $booking['bookable_product'] = $bookable_product_id;
110 $context = array_merge( $booking, WordPress::get_user_context( $booking['customer_id'] ) );
111
112 AutomationController::sure_trigger_handle_trigger(
113 [
114 'trigger' => $this->trigger,
115 'context' => $context,
116 ]
117 );
118 }
119 }
120 }
121 }
122
123 /**
124 * Ignore false positive
125 *
126 * @psalm-suppress UndefinedMethod
127 */
128 BookingCreated::get_instance();
129
130 endif;
131