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/wpadverts/includes/triggers.php +187 -0 7.9.4 → 8.0.5 View file →
@@ -1,0 +1,187 @@
1 +<?php
2 +/**
3 + * Triggers
4 + *
5 + * @package GamiPress\WPAdverts\Triggers
6 + * @since 1.0.0
7 + */
8 +// Exit if accessed directly
9 +if( !defined( 'ABSPATH' ) ) exit;
10 +
11 +/**
12 + * Register plugin specific triggers
13 + *
14 + * @param array $triggers
15 + * @return mixed
16 + */
17 +function gamipress_wpadverts_activity_triggers( $triggers ) {
18 +
19 + $triggers[__( 'WPAdverts', 'gamipress' )] = array(
20 +
21 + // New advert
22 + 'gamipress_wpadverts_new_advert' => __( 'Publish an advert', 'gamipress' ),
23 + 'gamipress_wpadverts_new_free_advert' => __( 'Publish a free advert', 'gamipress' ),
24 + 'gamipress_wpadverts_new_paid_advert' => __( 'Publish a paid advert', 'gamipress' ),
25 + // Send message
26 + 'gamipress_wpadverts_send_message' => __( 'Send a message to an advert author', 'gamipress' ),
27 + 'gamipress_wpadverts_specific_send_message' => __( 'Send a message to a specific advert author', 'gamipress' ),
28 + 'gamipress_wpadverts_receive_message' => __( 'Receive a message from an advert', 'gamipress' ),
29 + 'gamipress_wpadverts_specific_receive_message' => __( 'Receive a message from a specific advert', 'gamipress' ),
30 + // Payment
31 + 'gamipress_wpadverts_pay_advert' => __( 'Pay an advert', 'gamipress' ),
32 + 'gamipress_wpadverts_pay_specific_advert' => __( 'Pay a specific advert', 'gamipress' ),
33 + 'gamipress_wpadverts_renew_advert' => __( 'Renew an advert', 'gamipress' ),
34 + 'gamipress_wpadverts_renew_specific_advert' => __( 'Renew a specific advert', 'gamipress' ),
35 + );
36 +
37 + return $triggers;
38 +
39 +}
40 +add_filter( 'gamipress_activity_triggers', 'gamipress_wpadverts_activity_triggers' );
41 +
42 +/**
43 + * Register plugin specific activity triggers
44 + *
45 + * @since 1.0.0
46 + *
47 + * @param array $specific_activity_triggers
48 + * @return array
49 + */
50 +function gamipress_wpadverts_specific_activity_triggers( $specific_activity_triggers ) {
51 +
52 + // Send message
53 + $specific_activity_triggers['gamipress_wpadverts_specific_send_message'] = array( 'advert' );
54 + $specific_activity_triggers['gamipress_wpadverts_specific_receive_message'] = array( 'advert' );
55 + // Payment
56 + $specific_activity_triggers['gamipress_wpadverts_pay_specific_advert'] = array( 'advert' );
57 + $specific_activity_triggers['gamipress_wpadverts_renew_specific_advert'] = array( 'advert' );
58 +
59 + return $specific_activity_triggers;
60 +}
61 +add_filter( 'gamipress_specific_activity_triggers', 'gamipress_wpadverts_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_wpadverts_specific_activity_trigger_label( $specific_activity_trigger_labels ) {
72 +
73 + // Send message
74 + $specific_activity_trigger_labels['gamipress_wpadverts_specific_send_message'] = __( 'Send a message to %s author', 'gamipress' );
75 + $specific_activity_trigger_labels['gamipress_wpadverts_specific_receive_message'] = __( 'Receive a message from %s advert', 'gamipress' );
76 +
77 + return $specific_activity_trigger_labels;
78 +}
79 +add_filter( 'gamipress_specific_activity_trigger_label', 'gamipress_wpadverts_specific_activity_trigger_label' );
80 +
81 +/**
82 + * Get user for a given trigger action.
83 + *
84 + * @since 1.0.0
85 + *
86 + * @param integer $user_id user ID to override.
87 + * @param string $trigger Trigger name.
88 + * @param array $args Passed trigger args.
89 + * @return integer User ID.
90 + */
91 +function gamipress_wpadverts_trigger_get_user_id( $user_id, $trigger, $args ) {
92 +
93 + switch ( $trigger ) {
94 + // New advert
95 + case 'gamipress_wpadverts_new_advert':
96 + case 'gamipress_wpadverts_new_free_advert':
97 + case 'gamipress_wpadverts_new_paid_advert':
98 + // Send message
99 + case 'gamipress_wpadverts_send_message':
100 + case 'gamipress_wpadverts_specific_send_message':
101 + case 'gamipress_wpadverts_receive_message':
102 + case 'gamipress_wpadverts_specific_receive_message':
103 + // Payment
104 + case 'gamipress_wpadverts_pay_advert':
105 + case 'gamipress_wpadverts_pay_specific_advert':
106 + case 'gamipress_wpadverts_renew_advert':
107 + case 'gamipress_wpadverts_renew_specific_advert':
108 + $user_id = $args[1];
109 + break;
110 + }
111 +
112 + return $user_id;
113 +
114 +}
115 +add_filter( 'gamipress_trigger_get_user_id', 'gamipress_wpadverts_trigger_get_user_id', 10, 3);
116 +
117 +
118 +/**
119 + * Get the id for a given specific trigger action.
120 + *
121 + * @since 1.0.0
122 + *
123 + * @param integer $specific_id Specific ID.
124 + * @param string $trigger Trigger name.
125 + * @param array $args Passed trigger args.
126 + *
127 + * @return integer Specific ID.
128 + */
129 +function gamipress_wpadverts_specific_trigger_get_id( $specific_id, $trigger = '', $args = array() ) {
130 +
131 + switch ( $trigger ) {
132 + // Send message
133 + case 'gamipress_wpadverts_specific_send_message':
134 + case 'gamipress_wpadverts_specific_receive_message':
135 + // Payment
136 + case 'gamipress_wpadverts_pay_specific_advert':
137 + case 'gamipress_wpadverts_renew_specific_advert':
138 + $specific_id = $args[0];
139 + break;
140 + }
141 +
142 + return $specific_id;
143 +}
144 +add_filter( 'gamipress_specific_trigger_get_id', 'gamipress_wpadverts_specific_trigger_get_id', 10, 3 );
145 +
146 +/**
147 + * Extended meta data for event trigger logging
148 + *
149 + * @since 1.0.0
150 + *
151 + * @param array $log_meta
152 + * @param integer $user_id
153 + * @param string $trigger
154 + * @param integer $site_id
155 + * @param array $args
156 + *
157 + * @return array
158 + */
159 +function gamipress_wpadverts_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
160 +
161 + switch ( $trigger ) {
162 + // New advert
163 + case 'gamipress_wpadverts_new_advert':
164 + case 'gamipress_wpadverts_new_free_advert':
165 + case 'gamipress_wpadverts_new_paid_advert':
166 + // Send message
167 + case 'gamipress_wpadverts_send_message':
168 + case 'gamipress_wpadverts_specific_send_message':
169 + case 'gamipress_wpadverts_receive_message':
170 + case 'gamipress_wpadverts_specific_receive_message':
171 + // Add the post ID
172 + $log_meta['post_id'] = $args[0];
173 + break;
174 + // Payment
175 + case 'gamipress_wpadverts_pay_advert':
176 + case 'gamipress_wpadverts_pay_specific_advert':
177 + case 'gamipress_wpadverts_renew_advert':
178 + case 'gamipress_wpadverts_renew_specific_advert':
179 + // Add thepsot and payment IDs
180 + $log_meta['post_id'] = $args[0];
181 + $log_meta['payment_id'] = $args[2];
182 + break;
183 + }
184 +
185 + return $log_meta;
186 +}
187 +add_filter( 'gamipress_log_event_trigger_meta_data', 'gamipress_wpadverts_log_event_trigger_meta_data', 10, 5 );