PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.33
OttoKit: All-in-One Automation Platform v1.1.33
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 / eventprime / eventprime.php
suretriggers / src / Integrations / eventprime Last commit date
actions 3 months ago triggers 3 months ago eventprime.php 3 months ago
eventprime.php
198 lines
1 <?php
2 /**
3 * EventPrime integrations file
4 *
5 * @since 1.0.0
6 * @package SureTrigger
7 */
8
9 namespace SureTriggers\Integrations\EventPrime;
10
11 use SureTriggers\Controllers\IntegrationsController;
12 use SureTriggers\Integrations\Integrations;
13 use SureTriggers\Traits\SingletonLoader;
14
15 /**
16 * Class EventPrime
17 *
18 * @package SureTriggers\Integrations\EventPrime
19 */
20 class EventPrime extends Integrations {
21
22 use SingletonLoader;
23
24 /**
25 * ID
26 *
27 * @var string
28 */
29 protected $id = 'EventPrime';
30
31 /**
32 * SureTrigger constructor.
33 */
34 public function __construct() {
35 $this->name = __( 'EventPrime', 'suretriggers' );
36 $this->description = __( 'Event calendar and booking management for WordPress.', 'suretriggers' );
37 $this->icon_url = SURE_TRIGGERS_URL . 'assets/icons/eventprime.svg';
38
39 parent::__construct();
40 }
41
42 /**
43 * Get event context data.
44 *
45 * @param int $event_id Event Post ID.
46 *
47 * @return array
48 */
49 public static function get_event_context( $event_id ) {
50 $event_post = get_post( $event_id );
51 if ( ! $event_post || 'em_event' !== $event_post->post_type ) {
52 return [];
53 }
54
55 $context = [
56 'event_id' => $event_id,
57 'event_title' => $event_post->post_title,
58 'event_description' => $event_post->post_content,
59 'event_status' => $event_post->post_status,
60 'event_url' => get_permalink( $event_id ),
61 'featured_image' => get_the_post_thumbnail_url( $event_id, 'full' ),
62 ];
63
64 // Date & time.
65 $start_date = get_post_meta( $event_id, 'em_start_date', true );
66 $end_date = get_post_meta( $event_id, 'em_end_date', true );
67 $start_time = get_post_meta( $event_id, 'em_start_time', true );
68 $end_time = get_post_meta( $event_id, 'em_end_time', true );
69
70 $context['event_start_date'] = is_string( $start_date ) ? $start_date : '';
71 $context['event_end_date'] = is_string( $end_date ) ? $end_date : '';
72 $context['event_start_time'] = is_string( $start_time ) ? $start_time : '';
73 $context['event_end_time'] = is_string( $end_time ) ? $end_time : '';
74
75 $all_day = get_post_meta( $event_id, 'em_all_day', true );
76 $context['event_all_day'] = ! empty( $all_day ) ? 'yes' : 'no';
77
78 // Venue (taxonomy term).
79 $venue_id = get_post_meta( $event_id, 'em_venue', true );
80 if ( ! empty( $venue_id ) && is_numeric( $venue_id ) ) {
81 $venue_term = get_term( (int) $venue_id, 'em_venue' );
82 if ( ! is_wp_error( $venue_term ) && $venue_term ) {
83 $context['venue_name'] = $venue_term->name;
84 $context['venue_id'] = $venue_term->term_id;
85 }
86 }
87
88 // Event type (taxonomy term).
89 $event_type_id = get_post_meta( $event_id, 'em_event_type', true );
90 if ( ! empty( $event_type_id ) && is_numeric( $event_type_id ) ) {
91 $type_term = get_term( (int) $event_type_id, 'em_event_type' );
92 if ( ! is_wp_error( $type_term ) && $type_term ) {
93 $context['event_type_name'] = $type_term->name;
94 $context['event_type_id'] = $type_term->term_id;
95 }
96 }
97
98 // Organizer (taxonomy term).
99 $organizer_id = get_post_meta( $event_id, 'em_organizer', true );
100 if ( ! empty( $organizer_id ) && is_numeric( $organizer_id ) ) {
101 $organizer_term = get_term( (int) $organizer_id, 'em_event_organizer' );
102 if ( ! is_wp_error( $organizer_term ) && $organizer_term ) {
103 $context['organizer_name'] = $organizer_term->name;
104 $context['organizer_id'] = $organizer_term->term_id;
105 }
106 }
107
108 // Performer(s) (post type).
109 $performer_ids = get_post_meta( $event_id, 'em_performer', true );
110 if ( ! empty( $performer_ids ) && is_array( $performer_ids ) ) {
111 $performer_names = [];
112 foreach ( $performer_ids as $pid ) {
113 if ( is_numeric( $pid ) ) {
114 $performer_post = get_post( (int) $pid );
115 if ( $performer_post ) {
116 $performer_names[] = $performer_post->post_title;
117 }
118 }
119 }
120 $context['performer_names'] = implode( ', ', $performer_names );
121 }
122
123 // Fixed price.
124 $fixed_price = get_post_meta( $event_id, 'em_fixed_event_price', true );
125 if ( is_numeric( $fixed_price ) ) {
126 $context['event_fixed_price'] = $fixed_price;
127 }
128
129 return $context;
130 }
131
132 /**
133 * Get booking context data.
134 *
135 * @param int $booking_id Booking Post ID.
136 *
137 * @return array
138 */
139 public static function get_booking_context( $booking_id ) {
140 $booking_post = get_post( $booking_id );
141 if ( ! $booking_post || 'em_booking' !== $booking_post->post_type ) {
142 return [];
143 }
144
145 $context = [
146 'booking_id' => $booking_id,
147 ];
148
149 $status = get_post_meta( $booking_id, 'em_status', true );
150 $context['booking_status'] = is_string( $status ) ? $status : '';
151
152 $event_id = get_post_meta( $booking_id, 'em_event', true );
153 $context['event_id'] = is_numeric( $event_id ) ? (int) $event_id : 0;
154
155 $user_id = get_post_meta( $booking_id, 'em_user', true );
156 $context['user_id'] = is_numeric( $user_id ) ? (int) $user_id : 0;
157
158 $booking_date = get_post_meta( $booking_id, 'em_date', true );
159 $context['booking_date'] = is_numeric( $booking_date ) ? gmdate( 'Y-m-d H:i:s', (int) $booking_date ) : '';
160
161 $payment_method = get_post_meta( $booking_id, 'em_payment_method', true );
162 $context['payment_method'] = is_string( $payment_method ) ? $payment_method : '';
163
164 $event_name = get_post_meta( $booking_id, 'em_name', true );
165 $context['event_name'] = is_string( $event_name ) ? $event_name : '';
166
167 // Order info.
168 $order_info = get_post_meta( $booking_id, 'em_order_info', true );
169 if ( is_array( $order_info ) ) {
170 if ( isset( $order_info['booking_total'] ) ) {
171 $context['booking_total'] = $order_info['booking_total'];
172 }
173 if ( isset( $order_info['event_fixed_price'] ) ) {
174 $context['event_fixed_price'] = $order_info['event_fixed_price'];
175 }
176 }
177
178 // Attendee names.
179 $attendees = get_post_meta( $booking_id, 'em_attendee_names', true );
180 if ( is_array( $attendees ) && ! empty( $attendees ) ) {
181 $context['attendees'] = $attendees;
182 }
183
184 return $context;
185 }
186
187 /**
188 * Is Plugin depended on plugin is installed or not.
189 *
190 * @return bool
191 */
192 public function is_plugin_installed() {
193 return defined( 'EVENTPRIME_VERSION' );
194 }
195 }
196
197 IntegrationsController::register( EventPrime::class );
198