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 / event-calendar / triggers / attendee-registered-event.php
suretriggers / src / Integrations / event-calendar / triggers Last commit date
attendee-registered-event.php 2 years ago attendee-registers-wc.php 2 years ago user-attends-event.php 2 years ago user-register-event.php 2 years ago
attendee-registered-event.php
161 lines
1 <?php
2 /**
3 * AttendeeRegisteredEvent.
4 * php version 5.6
5 *
6 * @category AttendeeRegisteredEvent
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\EventCalendar\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Integrations\WordPress\WordPress;
18 use SureTriggers\Traits\SingletonLoader;
19
20 if ( ! class_exists( 'AttendeeRegisteredEvent' ) ) :
21
22 /**
23 * AttendeeRegisteredEvent
24 *
25 * @category AttendeeRegisteredEvent
26 * @package SureTriggers
27 * @author BSF <username@example.com>
28 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
29 * @link https://www.brainstormforce.com/
30 * @since 1.0.0
31 *
32 * @psalm-suppress UndefinedTrait
33 */
34 class AttendeeRegisteredEvent {
35
36 /**
37 * Integration type.
38 *
39 * @var string
40 */
41 public $integration = 'TheEventCalendar';
42
43 /**
44 * Trigger name.
45 *
46 * @var string
47 */
48 public $trigger = 'attendee_registered_event';
49
50 use SingletonLoader;
51
52 /**
53 * Constructor
54 *
55 * @since 1.0.0
56 */
57 public function __construct() {
58 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
59 }
60
61 /**
62 * Register action.
63 *
64 * @param array $triggers trigger data.
65 * @return array
66 */
67 public function register( $triggers ) {
68 $triggers[ $this->integration ][ $this->trigger ] = [
69 'label' => __( 'Attendee Registered for Event', 'suretriggers' ),
70 'action' => $this->trigger,
71 'common_action' => [
72 'event_tickets_rsvp_attendee_created',
73 'event_ticket_woo_attendee_created',
74 'event_ticket_edd_attendee_created',
75 'event_tickets_tpp_attendee_created',
76 'event_tickets_tpp_attendee_updated',
77 'tec_tickets_commerce_attendee_after_create',
78 ],
79 'function' => [ $this, 'trigger_listener' ],
80 'priority' => 10,
81 'accepted_args' => 5,
82 ];
83
84 return $triggers;
85 }
86
87 /**
88 * Trigger listener
89 *
90 * @param int $attendee_id Attendee ID.
91 * @param int $post_id Post ID.
92 * @param object $order Order.
93 * @param int $attendee_product_id Attendee Product ID.
94 * @param string $attendee_order_status Attendee Order Status.
95 * @since 1.0.0
96 *
97 * @return void
98 */
99 public function trigger_listener( $attendee_id, $post_id, $order, $attendee_product_id, $attendee_order_status = null ) {
100
101 if ( is_object( $attendee_id ) && 'tec_tickets_commerce_attendee_after_create' === (string) current_action() ) {
102 $post_id = $attendee_id->event_id;
103 $attendee_id = $attendee_id->ID;
104 }
105 if ( ! $attendee_id ) {
106 return;
107 }
108
109 $attendees = tribe_tickets_get_attendees( $attendee_id );
110
111 if ( empty( $attendees ) ) {
112 return;
113 }
114 // Fetch unique values + all attendee details.
115 $attendee_details = [];
116 foreach ( $attendees as $attendee ) {
117 foreach ( $attendee as $key => $value ) {
118 if ( ! isset( $attendee_details[ $key ] ) ) {
119 $attendee_details[ $key ] = $value;
120 } else {
121 if ( $attendee_details[ $key ] !== $value ) {
122 if ( ! is_array( $attendee_details[ $key ] ) ) {
123 $attendee_details[ $key ] = [ $attendee_details[ $key ] ];
124 }
125 if ( ! in_array( $value, $attendee_details[ $key ] ) ) {
126 $attendee_details[ $key ][] = $value;
127 }
128 }
129 }
130 }
131 }
132
133 if ( 'tec_tickets_commerce_attendee_after_create' === (string) current_action() ) {
134 $attendee_product_id = $attendee_details['product_id'];
135 }
136
137 $event = tribe_events_get_ticket_event( $attendee_product_id );
138 $context = [
139 'event_id' => $post_id,
140 'event' => $event,
141 'attendies' => $attendee_details,
142 ];
143
144 AutomationController::sure_trigger_handle_trigger(
145 [
146 'trigger' => $this->trigger,
147 'context' => $context,
148 ]
149 );
150 }
151 }
152
153 /**
154 * Ignore false positive
155 *
156 * @psalm-suppress UndefinedMethod
157 */
158 AttendeeRegisteredEvent::get_instance();
159
160 endif;
161