PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 8.0.1
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v8.0.1
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 7.8.6 7.8.5 All 44 releases
gamipress / integrations / jetengine / includes / triggers.php

triggers.php in GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI 8.0.1, at integrations/jetengine/includes/triggers.php

147 lines 4.6 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\JetEngine\Triggers
6 * @since 1.0.0
7 */
8
9 // Exit if accessed directly
10 if( !defined( 'ABSPATH' ) ) exit;
11
12 /**
13 * Register plugin specific triggers
14 *
15 * @since 1.0.0
16 *
17 * @param array $triggers
18 * @return mixed
19 */
20 function gamipress_jetengine_activity_triggers( $triggers ) {
21
22 $triggers[__( 'JetEngine', 'gamipress' )] = array(
23
24 // Publish
25 'gamipress_jetengine_publish_post_any_type' => __( 'Publish a post of any type', 'gamipress' ),
26 'gamipress_jetengine_publish_post_specific_type' => __( 'Publish a post of specific type', 'gamipress' ),
27
28 // Update
29 'gamipress_jetengine_update_post_any_type' => __( 'Update a post of any type', 'gamipress' ),
30 'gamipress_jetengine_update_post_specific_type' => __( 'Update a post of specific type', 'gamipress' ),
31
32 // Delete
33 'gamipress_jetengine_delete_post_any_type' => __( 'Delete a post of any type', 'gamipress' ),
34 'gamipress_jetengine_delete_post_specific_type' => __( 'Delete a post of specific type', 'gamipress' ),
35
36 );
37
38 return $triggers;
39
40 }
41 add_filter( 'gamipress_activity_triggers', 'gamipress_jetengine_activity_triggers' );
42
43 /**
44 * Build custom activity trigger label
45 *
46 * @since 1.0.0
47 *
48 * @param string $title
49 * @param integer $requirement_id
50 * @param array $requirement
51 *
52 * @return string
53 */
54 function gamipress_jetengine_activity_trigger_label( $title, $requirement_id, $requirement ) {
55
56 $JE_post_type = ( isset( $requirement['jetengine_post_type'] ) ) ? $requirement['jetengine_post_type'] : '';
57
58 // Get the JetEngine post types
59 $post_types_obj = jet_engine()->cpt;
60 $post_types = $post_types_obj->get_items();
61
62 foreach ( $post_types as $post_type ) {
63 if ( $post_type['slug'] === $JE_post_type ) {
64 $post_type_name = $post_type['labels']['name'];
65 break;
66 }
67 }
68
69 switch( $requirement['trigger_type'] ) {
70 case 'gamipress_jetengine_publish_post_specific_type':
71 return sprintf( __( 'Publish a post of %s type', 'gamipress-jetengine-integration' ), $post_type_name );
72 break;
73 case 'gamipress_jetengine_update_post_specific_type':
74 return sprintf( __( 'Update a post of %s type', 'gamipress-jetengine-integration' ), $post_type_name );
75 break;
76 case 'gamipress_jetengine_delete_post_specific_type':
77 return sprintf( __( 'Delete a post of %s type', 'gamipress-jetengine-integration' ), $post_type_name );
78 break;
79
80 }
81
82 return $title;
83 }
84 add_filter( 'gamipress_activity_trigger_label', 'gamipress_jetengine_activity_trigger_label', 10, 3 );
85
86
87 /**
88 * Get user for a given trigger action.
89 *
90 * @since 1.0.0
91 *
92 * @param integer $user_id user ID to override.
93 * @param string $trigger Trigger name.
94 * @param array $args Passed trigger args.
95 * @return integer User ID.
96 */
97 function gamipress_jetengine_trigger_get_user_id( $user_id, $trigger, $args ) {
98
99 switch ( $trigger ) {
100 case 'gamipress_jetengine_publish_post_any_type':
101 case 'gamipress_jetengine_publish_post_specific_type':
102 case 'gamipress_jetengine_update_post_any_type':
103 case 'gamipress_jetengine_update_post_specific_type':
104 case 'gamipress_jetengine_delete_post_any_type':
105 case 'gamipress_jetengine_delete_post_specific_type':
106 $user_id = $args[1];
107 break;
108 }
109
110 return $user_id;
111
112 }
113
114 add_filter( 'gamipress_trigger_get_user_id', 'gamipress_jetengine_trigger_get_user_id', 10, 3);
115
116 /**
117 * Extended meta data for event trigger logging
118 *
119 * @since 1.0.1
120 *
121 * @param array $log_meta
122 * @param integer $user_id
123 * @param string $trigger
124 * @param integer $site_id
125 * @param array $args
126 *
127 * @return array
128 */
129 function gamipress_jetengine_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
130
131 switch ( $trigger ) {
132 case 'gamipress_jetengine_publish_post_any_type':
133 case 'gamipress_jetengine_publish_post_specific_type':
134 case 'gamipress_jetengine_update_post_any_type':
135 case 'gamipress_jetengine_update_post_specific_type':
136 case 'gamipress_jetengine_delete_post_any_type':
137 case 'gamipress_jetengine_delete_post_specific_type':
138 // Add the post type
139 $log_meta['post_type'] = $args[0];
140 break;
141 }
142
143 return $log_meta;
144 }
145 add_filter( 'gamipress_log_event_trigger_meta_data', 'gamipress_jetengine_log_event_trigger_meta_data', 10, 5 );
146
147