PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / trunk
OttoKit: All-in-One Automation Platform vtrunk
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 / paid-memberships-pro / triggers / user-cancels-membership.php
suretriggers / src / Integrations / paid-memberships-pro / triggers Last commit date
admin-assigns-membership-user.php 3 years ago user-cancels-membership.php 2 years ago user-membership-expires.php 3 years ago user-purchases-membership.php 3 years ago user-renews-expired-membership.php 2 years ago
user-cancels-membership.php
127 lines
1 <?php
2 /**
3 * UserCancelsMembership.
4 * php version 5.6
5 *
6 * @category UserCancelsMembership
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\PaidMembershipsPro\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Traits\SingletonLoader;
18 use SureTriggers\Integrations\WordPress\WordPress;
19 use PMPro_Membership_Level;
20
21 if ( ! class_exists( 'UserCancelsMembership' ) ) :
22
23 /**
24 * UserCancelsMembership
25 *
26 * @category UserCancelsMembership
27 * @package SureTriggers
28 * @author BSF <username@example.com>
29 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
30 * @link https://www.brainstormforce.com/
31 * @since 1.0.0
32 *
33 * @psalm-suppress UndefinedTrait
34 */
35 class UserCancelsMembership {
36
37
38 /**
39 * Integration type.
40 *
41 * @var string
42 */
43 public $integration = 'PaidMembershipsPro';
44
45
46 /**
47 * Trigger name.
48 *
49 * @var string
50 */
51 public $trigger = 'user_cancels_membership';
52
53 use SingletonLoader;
54
55
56 /**
57 * Constructor
58 *
59 * @since 1.0.0
60 */
61 public function __construct() {
62 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
63 }
64
65 /**
66 * Register action.
67 *
68 * @param array $triggers trigger data.
69 * @return array
70 */
71 public function register( $triggers ) {
72
73 $triggers[ $this->integration ][ $this->trigger ] = [
74 'label' => __( 'A user cancels a membership', 'suretriggers' ),
75 'action' => $this->trigger,
76 'common_action' => 'pmpro_after_change_membership_level',
77 'function' => [ $this, 'trigger_listener' ],
78 'priority' => 99,
79 'accepted_args' => 3,
80 ];
81 return $triggers;
82
83 }
84
85 /**
86 * Trigger listener
87 *
88 * @param int $level_id ID of the level changed to.
89 * @param int $user_id ID of the user changed.
90 * @param int $cancel_level ID of the level being cancelled if specified.
91 * @since 1.0.0
92 *
93 * @return void
94 */
95 public function trigger_listener( $level_id, $user_id, $cancel_level ) {
96
97 if ( 0 !== absint( $level_id ) ) {
98 return;
99 }
100
101 if ( class_exists( 'PMPro_Membership_Level' ) ) {
102 $membership_level = new PMPro_Membership_Level();
103 $level_data = $membership_level->get_membership_level( $level_id );
104 $context['level'] = $level_data;
105 }
106
107 $context['user'] = WordPress::get_user_context( $user_id );
108 $context['membership_id'] = $cancel_level;
109
110 AutomationController::sure_trigger_handle_trigger(
111 [
112 'trigger' => $this->trigger,
113 'context' => $context,
114 ]
115 );
116 }
117 }
118
119 /**
120 * Ignore false positive
121 *
122 * @psalm-suppress UndefinedMethod
123 */
124 UserCancelsMembership::get_instance();
125
126 endif;
127