PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.35
OttoKit: All-in-One Automation Platform v1.1.35
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 / wp-travel-engine / actions / retrieve-booking.php
suretriggers / src / Integrations / wp-travel-engine / actions Last commit date
create-coupon.php 10 months ago create-trip.php 6 months ago duplicate-trip.php 6 months ago list-bookings.php 10 months ago list-coupons.php 1 week ago list-trips.php 10 months ago retrieve-booking.php 10 months ago retrieve-coupon.php 1 week ago retrieve-enquiry.php 2 months ago update-booking-status.php 10 months ago update-coupon.php 1 week ago update-trip.php 6 months ago
retrieve-booking.php
167 lines
1 <?php
2 /**
3 * RetrieveBooking.
4 * php version 5.6
5 *
6 * @category RetrieveBooking
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\WPTravelEngine\Actions;
15
16 use SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Traits\SingletonLoader;
18
19 /**
20 * RetrieveBooking
21 *
22 * @category RetrieveBooking
23 * @package SureTriggers
24 * @author BSF <username@example.com>
25 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
26 * @link https://www.brainstormforce.com/
27 * @since 1.0.0
28 */
29 class RetrieveBooking extends AutomateAction {
30
31 use SingletonLoader;
32
33 /**
34 * Integration type.
35 *
36 * @var string
37 */
38 public $integration = 'WPTravelEngine';
39
40 /**
41 * Action name.
42 *
43 * @var string
44 */
45 public $action = 'wte_retrieve_booking';
46
47 /**
48 * Register the action.
49 *
50 * @param array $actions Actions array.
51 * @return array
52 */
53 public function register( $actions ) {
54 $actions[ $this->integration ][ $this->action ] = [
55 'label' => __( 'Retrieve a Booking', 'suretriggers' ),
56 'action' => $this->action,
57 'function' => [ $this, '_action_listener' ],
58 ];
59 return $actions;
60 }
61
62 /**
63 * Action listener.
64 *
65 * @param int $user_id User ID.
66 * @param int $automation_id Automation ID.
67 * @param array $fields Fields.
68 * @param array $selected_options Selected options.
69 * @return array
70 */
71 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
72 if ( empty( $selected_options['booking_id'] ) ) {
73 return [
74 'status' => 'error',
75 'message' => __( 'Booking ID is required.', 'suretriggers' ),
76
77 ];
78 }
79
80 $booking_id = absint( $selected_options['booking_id'] );
81 $booking = get_post( $booking_id );
82
83 if ( ! $booking || 'booking' !== $booking->post_type ) {
84 return [
85 'status' => 'error',
86 'message' => __( 'Booking not found.', 'suretriggers' ),
87
88 ];
89 }
90
91 $cart_info_raw = get_post_meta( $booking_id, 'cart_info', true );
92 $traveler_raw = get_post_meta( $booking_id, 'wptravelengine_travelers_details', true );
93 $booking_status = get_post_meta( $booking_id, 'wp_travel_engine_booking_status', true );
94 $paid_amount = get_post_meta( $booking_id, 'paid_amount', true );
95 $due_amount = get_post_meta( $booking_id, 'due_amount', true );
96
97 $trip_id = 0;
98 if (
99 is_array( $cart_info_raw ) &&
100 isset( $cart_info_raw['items'][0] ) &&
101 is_array( $cart_info_raw['items'][0] ) &&
102 isset( $cart_info_raw['items'][0]['trip_id'] )
103 ) {
104 $trip_id = absint( $cart_info_raw['items'][0]['trip_id'] );
105 }
106 $trip = get_post( $trip_id );
107
108 $traveler_details = [];
109 if (
110 is_array( $traveler_raw ) &&
111 isset( $traveler_raw[0] ) &&
112 is_array( $traveler_raw[0] )
113 ) {
114 $traveler_details = [
115 'first_name' => isset( $traveler_raw[0]['fname'] ) ? sanitize_text_field( (string) $traveler_raw[0]['fname'] ) : '',
116 'last_name' => isset( $traveler_raw[0]['lname'] ) ? sanitize_text_field( (string) $traveler_raw[0]['lname'] ) : '',
117 'email' => isset( $traveler_raw[0]['email'] ) ? sanitize_text_field( (string) $traveler_raw[0]['email'] ) : '',
118 'phone' => isset( $traveler_raw[0]['phone'] ) ? sanitize_text_field( (string) $traveler_raw[0]['phone'] ) : '',
119 'country' => isset( $traveler_raw[0]['country'] ) ? sanitize_text_field( (string) $traveler_raw[0]['country'] ) : '',
120 ];
121 }
122
123 $trip_dates = [
124 'start_date' => (
125 is_array( $cart_info_raw ) &&
126 isset( $cart_info_raw['items'][0]['trip_date'] )
127 ) ? sanitize_text_field( (string) $cart_info_raw['items'][0]['trip_date'] ) : '',
128 'end_date' => (
129 is_array( $cart_info_raw ) &&
130 isset( $cart_info_raw['items'][0]['end_date'] )
131 ) ? sanitize_text_field( (string) $cart_info_raw['items'][0]['end_date'] ) : '',
132 ];
133
134 $travelers_count = (
135 is_array( $cart_info_raw ) &&
136 isset( $cart_info_raw['items'][0]['travelers_count'] )
137 ) ? absint( $cart_info_raw['items'][0]['travelers_count'] ) : 0;
138
139 $total_cost = ( is_array( $cart_info_raw ) && isset( $cart_info_raw['total'] ) ) ? floatval( $cart_info_raw['total'] ) : 0;
140
141 $payment_details = [
142 'total_cost' => $total_cost,
143 'paid_amount' => $paid_amount,
144 'due_amount' => $due_amount,
145 ];
146
147 $booking_details = [
148 'booking_id' => $booking_id,
149 'booking_date' => get_the_date( 'Y-m-d H:i:s', $booking_id ),
150 'booking_status' => $booking_status,
151 'trip_id' => $trip_id,
152 'trip_name' => $trip ? $trip->post_title : '',
153 'trip_dates' => $trip_dates,
154 'travelers_count' => $travelers_count,
155 'traveler_details' => $traveler_details,
156 'payment_details' => $payment_details,
157 ];
158
159 return [
160 'status' => 'success',
161 'data' => $booking_details,
162 ];
163 }
164 }
165
166 RetrieveBooking::get_instance();
167