PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.32
OttoKit: All-in-One Automation Platform v1.1.32
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 / event-calendar / event-calendar.php
suretriggers / src / Integrations / event-calendar Last commit date
actions 3 months ago triggers 1 year ago event-calendar.php 1 year ago
event-calendar.php
98 lines
1 <?php
2 /**
3 * Event Calendar integrations file
4 *
5 * @since 1.0.0
6 * @package SureTrigger
7 */
8
9 namespace SureTriggers\Integrations\TheEventCalendar;
10
11 use SureTriggers\Controllers\IntegrationsController;
12 use SureTriggers\Integrations\Integrations;
13 use SureTriggers\Traits\SingletonLoader;
14
15 /**
16 * Class SureTrigger
17 *
18 * @package SureTriggers\Integrations\EventCalendar
19 */
20 class TheEventCalendar extends Integrations {
21
22 use SingletonLoader;
23
24 /**
25 * ID
26 *
27 * @var string
28 */
29 protected $id = 'TheEventCalendar';
30
31 /**
32 * SureTrigger constructor.
33 */
34 public function __construct() {
35 $this->name = __( 'The Events Calendar', 'suretriggers' );
36 $this->description = __( 'Easily create and manage an events calendar on your WordPress site with The Events Calendar plugin.', 'suretriggers' );
37 $this->icon_url = SURE_TRIGGERS_URL . 'assets/icons/the-events-calendar.svg';
38
39 parent::__construct();
40 }
41
42 /**
43 * Fetch event context.
44 *
45 * @param int $product_id product id.
46 * @param int $order_id order id.
47 * @return array
48 */
49 public static function get_event_context( $product_id, $order_id ) {
50 if ( ! class_exists( 'Tribe__Tickets__Main' ) ) {
51 return [];
52 }
53
54 $event = tribe_events_get_ticket_event( $product_id );
55 $attendees = tribe_tickets_get_attendees( $order_id );
56
57 if ( ! $event || ! $attendees ) {
58 return [];
59 }
60
61 // Fetch unique values + all attendee details.
62 $attendee_details = [];
63 foreach ( $attendees as $attendee ) {
64 foreach ( $attendee as $key => $value ) {
65 if ( ! isset( $attendee_details[ $key ] ) ) {
66 $attendee_details[ $key ] = $value;
67 } else {
68 if ( $attendee_details[ $key ] !== $value ) {
69 if ( ! is_array( $attendee_details[ $key ] ) ) {
70 $attendee_details[ $key ] = [ $attendee_details[ $key ] ];
71 }
72 if ( ! in_array( $value, $attendee_details[ $key ] ) ) {
73 $attendee_details[ $key ][] = $value;
74 }
75 }
76 }
77 }
78 }
79
80 return [
81 'event_id' => $event->ID,
82 'event' => $event,
83 'attendies' => $attendee_details,
84 ];
85 }
86
87 /**
88 * Is Plugin depended on plugin is installed or not.
89 *
90 * @return bool
91 */
92 public function is_plugin_installed() {
93 return class_exists( 'Tribe__Tickets__Main' ) && class_exists( 'Tribe__Events__Main' );
94 }
95 }
96
97 IntegrationsController::register( TheEventCalendar::class );
98