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 / user-attends-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
user-attends-event.php
157 lines
1 <?php
2 /**
3 * UserAttendsEvent.
4 * php version 5.6
5 *
6 * @category UserAttendsEvent
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\TheEventCalendar\TheEventCalendar;
18 use SureTriggers\Traits\SingletonLoader;
19
20 if ( ! class_exists( 'UserAttendsEvent' ) ) :
21
22 /**
23 * UserAttendsEvent
24 *
25 * @category UserAttendsEvent
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 UserAttendsEvent {
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 = 'user_attends_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' => __( 'User Attends Event', 'suretriggers' ),
70 'action' => $this->trigger,
71 'common_action' => [
72 'event_tickets_checkin',
73 'eddtickets_checkin',
74 'rsvp_checkin',
75 'wootickets_checkin',
76 ],
77 'function' => [ $this, 'trigger_listener' ],
78 'priority' => 10,
79 'accepted_args' => 2,
80 ];
81
82 return $triggers;
83 }
84
85 /**
86 * Trigger listener
87 *
88 * @param int $attendee_id Attendee id.
89 * @param object $qr QR code data.
90 * @since 1.0.0
91 *
92 * @return void
93 */
94 public function trigger_listener( $attendee_id, $qr ) {
95 if ( ! $attendee_id ) {
96 return;
97 }
98 if ( ! function_exists( 'tribe_tickets_get_attendees' ) ) {
99 return;
100 }
101 /**
102 *
103 * Ignore line
104 *
105 * @phpstan-ignore-next-line
106 */
107 $attendee_details = tribe_tickets_get_attendees( $attendee_id, 'rsvp_order' );
108 if ( empty( $attendee_details ) ) {
109 return;
110 }
111
112 $attendee = false;
113 foreach ( $attendee_details as $detail ) {
114 if ( (int) $detail['attendee_id'] !== (int) $attendee_id ) {
115 continue;
116 }
117 $attendee = $detail;
118 }
119
120 if ( ! $attendee ) {
121 return;
122 }
123
124 $attendee_user = get_user_by( 'email', $attendee['holder_email'] );
125 if ( ! $attendee_user ) {
126 return;
127 }
128
129 $product_id = get_post_meta( $attendee_id, '_tribe_rsvp_product', true );
130 $order_id = get_post_meta( $attendee_id, '_tribe_rsvp_order', true );
131 /**
132 *
133 * Ignore line
134 *
135 * @phpstan-ignore-next-line
136 */
137 $event_context = TheEventCalendar::get_event_context( $product_id, $order_id );
138 $context = array_merge( $attendee, $event_context );
139
140 AutomationController::sure_trigger_handle_trigger(
141 [
142 'trigger' => $this->trigger,
143 'context' => $context,
144 ]
145 );
146 }
147 }
148
149 /**
150 * Ignore false positive
151 *
152 * @psalm-suppress UndefinedMethod
153 */
154 UserAttendsEvent::get_instance();
155
156 endif;
157