PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.35
OttoKit: All-in-One Automation Platform v1.1.35
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 / woocommerce-memberships / actions / remove-user-from-membership-plan.php
suretriggers / src / Integrations / woocommerce-memberships / actions Last commit date
add-user-to-membership-plan.php 11 months ago change-user-membership-plan.php 11 months ago remove-user-from-membership-plan.php 11 months ago
remove-user-from-membership-plan.php
148 lines
1 <?php
2 /**
3 * RemoveUserFromMembershipPlan.
4 * php version 5.6
5 *
6 * @category RemoveUserFromMembershipPlan
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\WoocommerceMemberships\Actions;
15
16 use SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Traits\SingletonLoader;
18
19 /**
20 * RemoveUserFromMembershipPlan
21 *
22 * @category RemoveUserFromMembershipPlan
23 * @package SureTriggers
24 * @author BSF <username@example.com>
25 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
26 * @link https://www.brainstormforce.com/
27 * @since 1.0.0
28 */
29 class RemoveUserFromMembershipPlan extends AutomateAction {
30
31 /**
32 * Integration type.
33 *
34 * @var string
35 */
36 public $integration = 'WoocommerceMemberships';
37
38 /**
39 * Action name.
40 *
41 * @var string
42 */
43 public $action = 'wc_remove_user_from_membership_plan';
44
45 use SingletonLoader;
46
47 /**
48 * Register a action.
49 *
50 * @param array $actions actions.
51 * @return array
52 */
53 public function register( $actions ) {
54 $actions[ $this->integration ][ $this->action ] = [
55 'label' => __( 'Remove the user from a membership plan.', 'suretriggers' ),
56 'action' => 'wc_remove_user_from_membership_plan',
57 'function' => [ $this, 'action_listener' ],
58 ];
59 return $actions;
60 }
61
62 /**
63 * Action listener.
64 *
65 * @param int $user_id user_id.
66 * @param int $automation_id automation_id.
67 * @param array $fields fields.
68 * @param array $selected_options selectedOptions.
69 *
70 * @return void|array|bool
71 */
72 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
73
74 $plan = $selected_options['membership_plan'];
75 $user_id = $selected_options['wp_user_email'];
76
77 if ( is_email( $user_id ) ) {
78 $user = get_user_by( 'email', $user_id );
79 if ( $user ) {
80 $user_id = $user->ID;
81 if ( '-1' == $plan ) {
82 if ( function_exists( 'wc_memberships_get_user_memberships' ) ) {
83 $user_all_memberships = wc_memberships_get_user_memberships( $user_id );
84 }
85 if ( empty( $user_all_memberships ) ) {
86 $error = [
87 'status' => esc_attr__( 'Error', 'suretriggers' ),
88 'response' => esc_attr__( 'The user was not a member of any membership plans.', 'suretriggers' ),
89
90 ];
91 return $error;
92 } else {
93 try {
94 foreach ( $user_all_memberships as $membership ) {
95 wp_delete_post( $membership->post->ID );
96 }
97 return $user_all_memberships;
98 } catch ( \Exception $e ) {
99 $error_message = $e->getMessage();
100 $error = [
101 'status' => esc_attr__( 'Error', 'suretriggers' ),
102 'response' => $error_message,
103 ];
104 return $error;
105 }
106 }
107 } else {
108 if ( function_exists( 'wc_memberships_is_user_member' ) ) {
109 $check_membership_plan = wc_memberships_is_user_member( $user_id, $plan );
110 if ( true !== $check_membership_plan ) {
111 $error = [
112 'status' => esc_attr__( 'Error', 'suretriggers' ),
113 'response' => esc_attr__( 'The user was not a member of the specified membership plan.', 'suretriggers' ),
114
115 ];
116 return $error;
117 } else {
118 try {
119 if ( function_exists( 'wc_memberships_get_user_membership' ) ) {
120 $user_membership = wc_memberships_get_user_membership( $user_id, $plan );
121 wp_delete_post( $user_membership->post->ID );
122 return $user_membership;
123 }
124 } catch ( \Exception $e ) {
125 $error_message = $e->getMessage();
126 $error = [
127 'status' => esc_attr__( 'Error', 'suretriggers' ),
128 'response' => $error_message,
129 ];
130 return $error;
131 }
132 }
133 }
134 }
135 } else {
136 $error = [
137 'status' => esc_attr__( 'Error', 'suretriggers' ),
138 'response' => esc_attr__( 'This user is not registered.', 'suretriggers' ),
139
140 ];
141 return $error;
142 }
143 }
144 }
145 }
146
147 RemoveUserFromMembershipPlan::get_instance();
148