PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.36
OttoKit: All-in-One Automation Platform v1.1.36
1.1.37 1.1.36 1.1.35 1.1.34 1.1.33 1.1.32 1.1.31 1.1.30 1.1.29 1.1.28 1.1.27 1.1.9 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 1.0.39 1.0.40 1.0.41 1.0.42 1.0.43 1.0.44 1.0.45 1.0.46 1.0.47 1.0.48 1.0.49 1.0.50 1.0.51 1.0.52 1.0.53 1.0.54 1.0.55 1.0.56 1.0.57 1.0.58 1.0.59 1.0.60 1.0.61 1.0.62 1.0.63 1.0.64 1.0.65 1.0.66 1.0.67 1.0.68 1.0.69 1.0.7 1.0.70 1.0.71 1.0.72 1.0.73 1.0.74 1.0.75 1.0.76 1.0.77 1.0.78 1.0.79 1.0.8 1.0.80 1.0.81 1.0.82 1.0.83 1.0.84 1.0.85 1.0.86 1.0.87 1.0.88 1.0.89 1.0.9 1.0.90 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
suretriggers / src / Integrations / gamipress / triggers / user-total-points-meets-threshold.php
suretriggers / src / Integrations / gamipress / triggers Last commit date
user-attains-rank.php 3 years ago user-earns-achivements.php 3 years ago user-earns-specific-points.php 3 years ago user-total-points-meets-threshold.php 3 years ago
user-total-points-meets-threshold.php
132 lines
1 <?php
2 /**
3 * UserTotalPointsMeetsThreshold.
4 * php version 5.6
5 *
6 * @category UserTotalPointsMeetsThreshold
7 * @package SureTriggers
8 * @author BSF <username@example.com>
9 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
10 * @link https://www.brainstormforce.com/
11 * @since 1.0.0
12 */
13
14 namespace SureTriggers\Integrations\GamiPress\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Traits\SingletonLoader;
18 use SureTriggers\Integrations\WordPress\WordPress;
19
20 if ( ! class_exists( 'UserTotalPointsMeetsThreshold' ) ) :
21
22 /**
23 * UserTotalPointsMeetsThreshold
24 *
25 * @category UserTotalPointsMeetsThreshold
26 * @package SureTriggers
27 * @author BSF <username@example.com>
28 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
29 * @link https://www.brainstormforce.com/
30 * @since 1.0.0
31 *
32 * @psalm-suppress UndefinedTrait
33 */
34 class UserTotalPointsMeetsThreshold {
35
36
37 /**
38 * Integration type.
39 *
40 * @var string
41 */
42 public $integration = 'GamiPress';
43
44
45 /**
46 * Trigger name.
47 *
48 * @var string
49 */
50 public $trigger = 'user_total_points_meets_threshold';
51
52 use SingletonLoader;
53
54
55 /**
56 * Constructor
57 *
58 * @since 1.0.0
59 */
60 public function __construct() {
61 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
62 }
63
64 /**
65 * Register action.
66 *
67 * @param array $triggers trigger data.
68 * @return array
69 */
70 public function register( $triggers ) {
71
72 $triggers[ $this->integration ][ $this->trigger ] = [
73 'label' => __( 'User’s Total Point Meets A Threshold', 'suretriggers' ),
74 'action' => $this->trigger,
75 'common_action' => 'gamipress_update_user_points',
76 'function' => [ $this, 'trigger_listener' ],
77 'priority' => 20,
78 'accepted_args' => 8,
79 ];
80
81 return $triggers;
82 }
83
84 /**
85 * Trigger listener
86 *
87 * @param int $user_id .
88 * @param string $new_points .
89 * @param string $total_points .
90 * @param string $admin_id .
91 * @param string $achievement_id .
92 * @param string $points_type .
93 * @param string $reason .
94 * @param string $log_type .
95 * @return void
96 */
97 public function trigger_listener( $user_id, $new_points, $total_points, $admin_id, $achievement_id, $points_type, $reason, $log_type ) {
98
99 if ( empty( $user_id ) ) {
100 return;
101 }
102
103 $data['new_points'] = $new_points;
104 $data['total_points'] = $total_points;
105 $data['points_type'] = $points_type;
106
107 $post = get_page_by_path( $points_type, OBJECT, 'points-type' );
108
109 $context = array_merge( $data, WordPress::get_user_context( $user_id ) );
110 if ( is_object( $post ) ) {
111 $context['point_type'] = $post->ID;
112 }
113 $context['point_threshold'] = $total_points;
114
115 AutomationController::sure_trigger_handle_trigger(
116 [
117 'trigger' => $this->trigger,
118 'context' => $context,
119 ]
120 );
121 }
122 }
123
124 /**
125 * Ignore false positive
126 *
127 * @psalm-suppress UndefinedMethod
128 */
129 UserTotalPointsMeetsThreshold::get_instance();
130
131 endif;
132