PluginProbe
AutomatorWP – No-Code Workflow Automation, Integration & Webhooks Plugin, now with AI / 6.0.4
AutomatorWP – No-Code Workflow Automation, Integration & Webhooks Plugin, now with AI v6.0.4
6.0.4 6.0.3 6.0.2 6.0.1 6.0.0 5.8.6 5.8.5 5.8.4 5.8.3 5.8.2 5.8.1 5.8.0 5.7.9.2 5.7.9.1 5.7.8 5.7.9 5.7.6 5.7.7 5.7.5 5.7.4 5.7.3 5.7.2 5.7.1 trunk 5.6.0 All 35 releases
automatorwp / integrations / modern-events-calendar / includes / triggers / booking-completed.php

booking-completed.php in AutomatorWP – No-Code Workflow Automation, Integration & Webhooks Plugin, now with AI 6.0.4, at integrations/modern-events-calendar/includes/triggers/booking-completed.php

86 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Booking Completed
4 *
5 * @package AutomatorWP\Integrations\Modern_Events_Calendar\Triggers\Booking_Completed
6 * @author AutomatorWP <[email protected]>, Ruben Garcia <[email protected]>
7 * @since 1.0.0
8 */
9 // Exit if accessed directly
10 if( !defined( 'ABSPATH' ) ) exit;
11
12 class AutomatorWP_Modern_Events_Calendar_Booking_Completed extends AutomatorWP_Integration_Trigger {
13
14 public $integration = 'modern_events_calendar';
15 public $trigger = 'modern_events_calendar_booking_completed';
16
17 /**
18 * Register the trigger
19 *
20 * @since 1.0.0
21 */
22 public function register() {
23
24 automatorwp_register_trigger( $this->trigger, array(
25 'integration' => $this->integration,
26 'label' => __( 'User booking for an event is completed', 'automatorwp' ),
27 'select_option' => __( 'User booking for an event is <strong>completed</strong>', 'automatorwp' ),
28 /* translators: %1$s: Post title. %2$s: Number of times. */
29 'edit_label' => sprintf( __( 'User booking for %1$s is completed %2$s time(s)', 'automatorwp' ), '{post}', '{times}' ),
30 /* translators: %1$s: Post title. */
31 'log_label' => sprintf( __( 'User booking for %1$s is completed', 'automatorwp' ), '{post}' ),
32 'action' => 'mec_booking_completed',
33 'function' => array( $this, 'listener' ),
34 'priority' => 10,
35 'accepted_args' => 1,
36 'options' => array(
37 'post' => automatorwp_utilities_post_option( array(
38 'name' => __( 'Event:', 'automatorwp' ),
39 'option_none_label' => __( 'any event', 'automatorwp' ),
40 'post_type' => 'mec-events'
41 ) ),
42 'times' => automatorwp_utilities_times_option()
43 ),
44 'tags' => array_merge(
45 automatorwp_utilities_post_tags( __( 'Event', 'automatorwp' ) ),
46 automatorwp_modern_events_calendar_event_tags(),
47 automatorwp_utilities_times_tag()
48 )
49 ) );
50
51 }
52
53 /**
54 * Trigger listener
55 *
56 * @since 1.0.0
57 *
58 * @param int $book_id ID of the booking
59 */
60 public function listener( $book_id ) {
61
62 $event_id = absint( get_post_meta( $book_id, 'mec_event_id', true ) );
63 $attendees = get_post_meta( $book_id, 'mec_attendees', true );
64
65 foreach( $attendees as $attendee ) {
66
67 $user = get_user_by( 'email', $attendee['email'] );
68
69 // Skip if user not registered
70 if( ! $user ) {
71 continue;
72 }
73
74 automatorwp_trigger_event( array(
75 'trigger' => $this->trigger,
76 'post_id' => $event_id,
77 'user_id' => $user->ID,
78 ) );
79
80 }
81
82 }
83
84 }
85
86 new AutomatorWP_Modern_Events_Calendar_Booking_Completed();