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 / events-manager / actions / unregister-user-from-event.php
suretriggers / src / Integrations / events-manager / actions Last commit date
unregister-user-from-event.php 11 months ago
unregister-user-from-event.php
114 lines
1 <?php
2 /**
3 * UnregisterUserFromEvent.
4 * php version 5.6
5 *
6 * @category UnregisterUserFromEvent
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 use SureTriggers\Integrations\AutomateAction;
15 use SureTriggers\Traits\SingletonLoader;
16
17 /**
18 * UnregisterUserFromEvent
19 *
20 * @category UnregisterUserFromEvent
21 * @package SureTriggers
22 * @author BSF <username@example.com>
23 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
24 * @link https://www.brainstormforce.com/
25 * @since 1.0.0
26 */
27 class UnregisterUserFromEvent extends AutomateAction {
28
29
30 /**
31 * Integration type.
32 *
33 * @var string
34 */
35 public $integration = 'EventsManager';
36
37 /**
38 * Action name.
39 *
40 * @var string
41 */
42 public $action = 'em_unregister_user_from_event';
43
44 use SingletonLoader;
45
46 /**
47 * Register a action.
48 *
49 * @param array $actions actions.
50 * @return array
51 */
52 public function register( $actions ) {
53
54 $actions[ $this->integration ][ $this->action ] = [
55 'label' => __( 'Unregister the user from an event', 'suretriggers' ),
56 'action' => $this->action,
57 'function' => [ $this, 'action_listener' ],
58 ];
59 return $actions;
60 }
61
62 /**
63 * Action listener.
64 *
65 * @param int $user_id user_id.
66 * @param int $automation_id automation_id.
67 * @param array $fields fields.
68 * @param array $selected_options selectedOptions.
69 * @psalm-suppress UndefinedMethod
70 *
71 * @return array|mixed
72 *
73 * @throws Exception Exception.
74 */
75 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
76
77 if ( ! $user_id ) {
78 return [
79 'status' => 'error',
80 'message' => 'User not found with this email address.',
81 ];
82 }
83 $event_id = $selected_options['event_id'];
84
85 global $wpdb;
86
87 if ( '-1' === $event_id ) {
88 $all_bookings = $wpdb->get_results( $wpdb->prepare( "SELECT b.booking_id,e.* FROM {$wpdb->prefix}em_bookings as b INNER JOIN {$wpdb->prefix}em_events as e ON b.event_id = e.event_id WHERE e.event_status = 1 AND b.booking_status NOT IN (2,3) AND b.person_id = %s AND e.event_end_date >= CURRENT_DATE", $user_id ) );
89
90 } else {
91 $event_id_id = get_post_meta( $event_id, '_event_id', true );
92 $all_bookings = $wpdb->get_results( $wpdb->prepare( "SELECT b.booking_id,e.* FROM {$wpdb->prefix}em_bookings as b INNER JOIN {$wpdb->prefix}em_events as e ON b.event_id = e.event_id WHERE e.event_status = 1 AND b.event_id = %s AND b.booking_status NOT IN (2,3) AND b.person_id = %s AND e.event_end_date >= CURRENT_DATE", $event_id_id, $user_id ) );
93 }
94
95 if ( empty( $all_bookings ) ) {
96 return [
97 'status' => 'error',
98 'message' => 'The user was not registered for the specified event.',
99 ];
100 }
101
102 foreach ( $all_bookings as $booking ) {
103 $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->prefix}em_bookings SET booking_status= 3 WHERE booking_id=%d", $booking->booking_id ) );
104 }
105
106 $context = $all_bookings;
107
108 return $context;
109 }
110
111 }
112
113 UnregisterUserFromEvent::get_instance();
114