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 / studiocart / includes / triggers.php

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

171 lines 6.5 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\Studiocart\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_studiocart_activity_triggers( $triggers ) {
21
22 $triggers[__( 'Studiocart', 'gamipress' )] = array(
23
24 'gamipress_studiocart_any_product_purchase' => __( 'Purchase any product', 'gamipress' ),
25 'gamipress_studiocart_specific_product_purchase' => __( 'Purchase a specific product', 'gamipress' ),
26 'gamipress_studiocart_complete_any_product_order' => __( 'Complete an order for any product', 'gamipress' ),
27 'gamipress_studiocart_complete_specific_product_order' => __( 'Complete an order for a specific product', 'gamipress' ),
28 'gamipress_studiocart_refund_any_product_order' => __( 'Refund an order for any product', 'gamipress' ),
29 'gamipress_studiocart_refund_specific_product_order' => __( 'Refund an order for a specific product', 'gamipress' ),
30 'gamipress_studiocart_cancel_any_product_subscription' => __( 'Cancel a subscription for any product', 'gamipress' ),
31 'gamipress_studiocart_cancel_specific_product_subscription' => __( 'Cancel a subscription for a specific product', 'gamipress' ),
32
33 );
34
35 return $triggers;
36
37 }
38 add_filter( 'gamipress_activity_triggers', 'gamipress_studiocart_activity_triggers' );
39
40 /**
41 * Register Studiocart specific activity triggers
42 *
43 * @since 1.0.0
44 *
45 * @param array $specific_activity_triggers
46 * @return array
47 */
48 function gamipress_studiocart_specific_activity_triggers( $specific_activity_triggers ) {
49
50 $specific_activity_triggers['gamipress_studiocart_specific_product_purchase'] = array( 'sc_product' );
51 $specific_activity_triggers['gamipress_studiocart_complete_specific_product_order'] = array( 'sc_product' );
52 $specific_activity_triggers['gamipress_studiocart_refund_specific_product_order'] = array( 'sc_product' );
53 $specific_activity_triggers['gamipress_studiocart_cancel_specific_product_subscription'] = array( 'sc_product' );
54
55 return $specific_activity_triggers;
56 }
57 add_filter( 'gamipress_specific_activity_triggers', 'gamipress_studiocart_specific_activity_triggers' );
58
59 /**
60 * Register plugin specific activity triggers labels
61 *
62 * @since 1.0.0
63 *
64 * @param array $specific_activity_trigger_labels
65 * @return array
66 */
67 function gamipress_studiocart_specific_activity_trigger_label( $specific_activity_trigger_labels ) {
68
69 $specific_activity_trigger_labels['gamipress_studiocart_specific_product_purchase'] = __( 'Purchase %s', 'gamipress' );
70 $specific_activity_trigger_labels['gamipress_studiocart_complete_specific_product_order'] = __( 'Complete an order for %s', 'gamipress' );
71 $specific_activity_trigger_labels['gamipress_studiocart_refund_specific_product_order'] = __( 'Refund an order for %s', 'gamipress' );
72 $specific_activity_trigger_labels['gamipress_studiocart_cancel_specific_product_subscription'] = __( 'Cancel subscription for %s', 'gamipress' );
73
74 return $specific_activity_trigger_labels;
75 }
76 add_filter( 'gamipress_specific_activity_trigger_label', 'gamipress_studiocart_specific_activity_trigger_label' );
77
78 /**
79 * Get user for a given trigger action.
80 *
81 * @since 1.0.0
82 *
83 * @param integer $user_id user ID to override.
84 * @param string $trigger Trigger name.
85 * @param array $args Passed trigger args.
86 * @return integer User ID.
87 */
88 function gamipress_studiocart_trigger_get_user_id( $user_id, $trigger, $args ) {
89
90 switch ( $trigger ) {
91
92 case 'gamipress_studiocart_any_product_purchase':
93 case 'gamipress_studiocart_specific_product_purchase':
94 case 'gamipress_studiocart_complete_any_product_order':
95 case 'gamipress_studiocart_complete_specific_product_order':
96 case 'gamipress_studiocart_refund_any_product_order':
97 case 'gamipress_studiocart_refund_specific_product_order':
98 case 'gamipress_studiocart_cancel_any_product_subscription':
99 case 'gamipress_studiocart_cancel_specific_product_subscription':
100 $user_id = $args[2];
101 break;
102
103 }
104
105 return $user_id;
106
107 }
108 add_filter( 'gamipress_trigger_get_user_id', 'gamipress_studiocart_trigger_get_user_id', 10, 3 );
109
110 /**
111 * Get the id for a given specific trigger action.
112 *
113 * @since 1.0.0
114 *
115 * @param integer $specific_id Specific ID.
116 * @param string $trigger Trigger name.
117 * @param array $args Passed trigger args.
118 *
119 * @return integer Specific ID.
120 */
121 function gamipress_studiocart_specific_trigger_get_id( $specific_id, $trigger = '', $args = array() ) {
122
123 switch ( $trigger ) {
124
125 case 'gamipress_studiocart_specific_product_purchase':
126 case 'gamipress_studiocart_complete_specific_product_order':
127 case 'gamipress_studiocart_refund_specific_product_order':
128 case 'gamipress_studiocart_cancel_specific_product_subscription':
129 $specific_id = $args[0];
130 break;
131
132 }
133
134 return $specific_id;
135 }
136 add_filter( 'gamipress_specific_trigger_get_id', 'gamipress_studiocart_specific_trigger_get_id', 10, 3 );
137
138 /**
139 * Extended meta data for event trigger logging
140 *
141 * @since 1.0.0
142 *
143 * @param array $log_meta
144 * @param integer $user_id
145 * @param string $trigger
146 * @param integer $site_id
147 * @param array $args
148 *
149 * @return array
150 */
151 function gamipress_studiocart_log_event_trigger_meta_data( $log_meta, $user_id, $trigger, $site_id, $args ) {
152
153 switch ( $trigger ) {
154
155 case 'gamipress_studiocart_any_product_purchase':
156 case 'gamipress_studiocart_specific_product_purchase':
157 case 'gamipress_studiocart_complete_any_product_order':
158 case 'gamipress_studiocart_complete_specific_product_order':
159 case 'gamipress_studiocart_refund_any_product_order':
160 case 'gamipress_studiocart_refund_specific_product_order':
161 case 'gamipress_studiocart_cancel_any_product_subscription':
162 case 'gamipress_studiocart_cancel_specific_product_subscription':
163 $log_meta['product_id'] = $args[0];
164 $log_meta['order_id'] = $args[1];
165 break;
166
167 }
168
169 return $log_meta;
170 }
171 add_filter( 'gamipress_log_event_trigger_meta_data', 'gamipress_studiocart_log_event_trigger_meta_data', 10, 5 );