PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 7.9.8
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v7.9.8
8.0.4 8.0.3 8.0.1 8.0.2 8.0.0 7.9.9.7 7.9.9.6 7.9.9.5 7.9.9.4 7.9.9.3 7.9.9.2 7.9.9.1 7.9.9 7.9.8 7.9.7 7.9.6 7.9.5 7.9.4 7.9.3 7.9.2 7.9.1 7.9.0 7.8.9 7.8.8 7.8.7 All 46 releases
gamipress / integrations / events-manager / includes / triggers.php

triggers.php in GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI 7.9.8, at integrations/events-manager/includes/triggers.php

162 lines 5.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Triggers
4 *
5 * @package GamiPress\Events_Manager\Triggers
6 * @since 1.0.0
7 */
8 // Exit if accessed directly
9 if( !defined( 'ABSPATH' ) ) exit;
10
11 /**
12 * Register plugin triggers
13 *
14 * @since 1.0.0
15 *
16 * @param array $triggers
17 * @return mixed
18 */
19 function gamipress_events_manager_activity_triggers( $triggers ) {
20
21 if( ! defined('EM_POST_TYPE_EVENT') ) define( 'EM_POST_TYPE_EVENT', 'event' );
22
23 $triggers[__( 'Events Manager', 'gamipress' )] = array(
24
25 // Publishing
26 'gamipress_publish_' . EM_POST_TYPE_EVENT => __( 'Publish a new event', 'gamipress' ), // Internal GamiPress listener
27 'gamipress_delete_' . EM_POST_TYPE_EVENT => __( 'Delete an event', 'gamipress' ), // Internal GamiPress listener
28
29 // Attend
30 'gamipress_events_manager_new_booking' => __( 'Attend an event', 'gamipress' ),
31 'gamipress_events_manager_new_specific_booking' => __( 'Attend a specific event', 'gamipress' ),
32
33 // Cancel attend
34 'gamipress_events_manager_cancel_booking' => __( 'Cancel attendance to an event', 'gamipress' ),
35 'gamipress_events_manager_cancel_specific_booking' => __( 'Cancel attendance to a specific event', 'gamipress' ),
36 );
37
38 return $triggers;
39
40 }
41 add_filter( 'gamipress_activity_triggers', 'gamipress_events_manager_activity_triggers' );
42
43 /**
44 * Register plugin specific activity triggers
45 *
46 * @since 1.0.0
47 *
48 * @param array $specific_activity_triggers
49 * @return array
50 */
51 function gamipress_events_manager_specific_activity_triggers( $specific_activity_triggers ) {
52
53 if( ! defined('EM_POST_TYPE_EVENT') ) define( 'EM_POST_TYPE_EVENT', 'event' );
54
55 $specific_activity_triggers['gamipress_events_manager_new_specific_booking'] = array( EM_POST_TYPE_EVENT );
56 $specific_activity_triggers['gamipress_events_manager_cancel_specific_booking'] = array( EM_POST_TYPE_EVENT );
57
58 return $specific_activity_triggers;
59
60 }
61 add_filter( 'gamipress_specific_activity_triggers', 'gamipress_events_manager_specific_activity_triggers' );
62
63 /**
64 * Register plugin specific activity triggers labels
65 *
66 * @since 1.0.0
67 *
68 * @param array $specific_activity_trigger_labels
69 * @return array
70 */
71 function gamipress_events_manager_specific_activity_trigger_label( $specific_activity_trigger_labels ) {
72
73 $specific_activity_trigger_labels['gamipress_events_manager_new_specific_booking'] = __( 'Attend to %s', 'gamipress' );
74 $specific_activity_trigger_labels['gamipress_events_manager_cancel_specific_booking'] = __( 'Cancel attendance to %s', 'gamipress' );
75
76 return $specific_activity_trigger_labels;
77 }
78 add_filter( 'gamipress_specific_activity_trigger_label', 'gamipress_events_manager_specific_activity_trigger_label' );
79
80 /**
81 * Get user for a given trigger action.
82 *
83 * @since 1.0.0
84 *
85 * @param integer $user_id user ID to override.
86 * @param string $trigger Trigger name.
87 * @param array $args Passed trigger args.
88 * @return integer User ID.
89 */
90 function gamipress_events_manager_trigger_get_user_id( $user_id, $trigger, $args ) {
91
92 if( ! defined('EM_POST_TYPE_EVENT') ) define( 'EM_POST_TYPE_EVENT', 'event' );
93
94 switch ( $trigger ) {
95 case 'gamipress_publish_' . EM_POST_TYPE_EVENT: // Internal GamiPress listener
96 case 'gamipress_delete_' . EM_POST_TYPE_EVENT: // Internal GamiPress listener
97 case 'gamipress_events_manager_new_booking':
98 case 'gamipress_events_manager_new_specific_booking':
99 case 'gamipress_events_manager_cancel_booking':
100 case 'gamipress_events_manager_cancel_specific_booking':
101 $user_id = $args[1];
102 break;
103 }
104
105 return $user_id;
106
107 }
108 add_filter( 'gamipress_trigger_get_user_id', 'gamipress_events_manager_trigger_get_user_id', 10, 3 );
109
110 /**
111 * Get the id for a given specific trigger action.
112 *
113 * @since 1.0.1
114 *
115 * @param integer $specific_id Specific ID to override.
116 * @param string $trigger Trigger name.
117 * @param array $args Passed trigger args.
118 *
119 * @return integer Specific ID.
120 */
121 function gamipress_events_manager_specific_trigger_get_id( $specific_id, $trigger, $args ) {
122
123 switch ( $trigger ) {
124 case 'gamipress_events_manager_new_specific_booking':
125 case 'gamipress_events_manager_cancel_specific_booking':
126 $specific_id = $args[0];
127 break;
128 }
129
130 return $specific_id;
131
132 }
133 add_filter( 'gamipress_specific_trigger_get_id', 'gamipress_events_manager_specific_trigger_get_id', 10, 3 );
134
135 /**
136 * Extended meta data for event trigger logging
137 *
138 * @since 1.0.1
139 *
140 * @param array $log_meta
141 * @param integer $user_id
142 * @param string $trigger
143 * @param integer $site_id
144 * @param array $args
145 *
146 * @return array
147 */
148 function gamipress_events_manager_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
149
150 switch ( $trigger ) {
151 case 'gamipress_events_manager_new_booking':
152 case 'gamipress_events_manager_new_specific_booking':
153 case 'gamipress_events_manager_cancel_booking':
154 case 'gamipress_events_manager_cancel_specific_booking':
155 // Add the event ID
156 $log_meta['event_id'] = $args[0];
157 break;
158 }
159
160 return $log_meta;
161 }
162 add_filter( 'gamipress_log_event_trigger_meta_data', 'gamipress_events_manager_log_event_trigger_meta_data', 10, 5 );