PluginProbe
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI / 8.0.5
GamiPress – Gamification plugin to reward points, badges & ranks in WordPress, now with AI v8.0.5
8.0.5 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 All 47 releases
← All changes | integrations/jetengine/includes/triggers.php +146 -0 7.9.9.2 → 8.0.5 View file →
@@ -1,0 +1,146 @@
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 +