PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.36
OttoKit: All-in-One Automation Platform v1.1.36
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 / wp-travel-engine / actions / list-trips.php
suretriggers / src / Integrations / wp-travel-engine / actions Last commit date
create-coupon.php 11 months ago create-trip.php 6 months ago duplicate-trip.php 6 months ago list-bookings.php 11 months ago list-coupons.php 2 weeks ago list-trips.php 11 months ago retrieve-booking.php 11 months ago retrieve-coupon.php 2 weeks ago retrieve-enquiry.php 2 months ago update-booking-status.php 11 months ago update-coupon.php 2 weeks ago update-trip.php 6 months ago
list-trips.php
151 lines
1 <?php
2 /**
3 * ListTrips.
4 * php version 5.6
5 *
6 * @category ListTrips
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 * ListTrips.
21 *
22 * @category ListTrips
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 ListTrips 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_list_trips';
46
47 /**
48 * Register the action.
49 *
50 * @param array $actions List of registered actions.
51 * @return array Modified list of actions.
52 */
53 public function register( $actions ) {
54 $actions[ $this->integration ][ $this->action ] = [
55 'label' => __( 'List Trips', 'suretriggers' ),
56 'description' => __( 'Get a list of trips with optional filtering', 'suretriggers' ),
57 'action' => $this->action,
58 'function' => [ $this, '_action_listener' ],
59 ];
60
61 return $actions;
62 }
63
64 /**
65 * Action listener that returns list of trips.
66 *
67 * @param int $user_id User ID.
68 * @param int $automation_id Automation ID.
69 * @param array $fields Trigger fields.
70 * @param array $selected_options Selected options for trip filtering.
71 * @return array Result with status and data or error.
72 */
73 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
74 if ( ! function_exists( 'wp_travel_engine_get_settings' ) ) {
75 return [
76 'status' => 'error',
77 'message' => __( 'WP Travel Engine plugin is not active.', 'suretriggers' ),
78
79 ];
80 }
81 $limit = ! empty( $selected_options['limit'] ) ? intval( $selected_options['limit'] ) : 20;
82
83 $args = [
84 'post_type' => 'trip',
85 'post_status' => isset( $selected_options['status'] ) ? $selected_options['status'] : 'publish',
86 'posts_per_page' => $limit,
87 ];
88
89
90 $trips_query = new \WP_Query( $args );
91 $trips = [];
92
93 if ( $trips_query->have_posts() ) {
94 while ( $trips_query->have_posts() ) {
95 $trips_query->the_post();
96 $trip_id = get_the_ID();
97
98 if ( ! $trip_id ) {
99 continue;
100 }
101
102 $trip_settings_raw = get_post_meta( $trip_id, 'wp_travel_engine_setting', true );
103 $trip_settings = is_array( $trip_settings_raw ) ? $trip_settings_raw : [];
104
105 $price = isset( $trip_settings['trip_price'] ) ? floatval( $trip_settings['trip_price'] ) : 0;
106 $sale_price = isset( $trip_settings['sale_price'] ) ? floatval( $trip_settings['sale_price'] ) : 0;
107 $duration = isset( $trip_settings['trip_duration'] ) ? $trip_settings['trip_duration'] : '';
108 $duration_unit = isset( $trip_settings['trip_duration_unit'] ) ? $trip_settings['trip_duration_unit'] : 'days';
109
110 $featured_image = get_the_post_thumbnail_url( $trip_id, 'medium' );
111
112 $categories = [];
113 $terms = get_the_terms( $trip_id, 'trip_types' );
114 if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
115 foreach ( $terms as $term ) {
116 $categories[] = [
117 'id' => $term->term_id,
118 'name' => $term->name,
119 'slug' => $term->slug,
120 ];
121 }
122 }
123
124 $trips[] = [
125 'id' => $trip_id,
126 'title' => get_the_title(),
127 'url' => get_permalink(),
128 'featured_image' => $featured_image,
129 'price' => $price,
130 'sale_price' => $sale_price,
131 'duration' => trim( $duration . ' ' . $duration_unit ),
132 'categories' => $categories,
133 'excerpt' => get_the_excerpt(),
134 'date_created' => get_the_date( 'Y-m-d H:i:s' ),
135 ];
136 }
137 wp_reset_postdata();
138 }
139
140 return [
141 'status' => 'success',
142 'data' => [
143 'trips' => $trips,
144 'count' => count( $trips ),
145 ],
146 ];
147 }
148 }
149
150 ListTrips::get_instance();
151