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 / voxel / triggers / membership-plan-updated.php
suretriggers / src / Integrations / voxel / triggers Last commit date
collection-post-created.php 2 years ago collection-post-updated.php 2 years ago comment-reply-created-timeline.php 2 years ago membership-plan-activated.php 10 months ago membership-plan-canceled.php 10 months ago membership-plan-switched.php 10 months ago membership-plan-updated.php 10 months ago membership-user-registered.php 2 years ago new-comment-timeline.php 2 years ago new-message-post-created.php 1 year ago new-order-placed.php 2 years ago new-profile-created.php 2 years ago new-wall-post-by-user.php 1 year ago order-approved-by-vendor.php 2 years ago order-canceled-by-customer.php 2 years ago order-declined-by-vendor.php 2 years ago orders-claim-listing.php 1 year ago orders-promotion-activated.php 1 year ago orders-promotion-canceled.php 1 year ago post-approved.php 2 years ago post-rejected.php 2 years ago post-review-approved.php 1 year ago post-reviewed.php 2 years ago post-submitted.php 2 years ago post-updated.php 2 years ago profile-approved.php 2 years ago profile-rejected.php 2 years ago profile-reviewed.php 1 year ago profile-updated.php 2 years ago profile-wall-new-post.php 1 year ago taxonomy-updated.php 10 months ago timeline-post-approved.php 1 year ago user-receives-message.php 2 years ago users-timeline-approved.php 1 year ago users-timeline-created.php 1 year ago voxel-comment-liked.php 1 year ago voxel-post-followed.php 1 year ago voxel-post-liked.php 1 year ago voxel-post-quoted.php 1 year ago voxel-post-reposted.php 1 year ago voxel-post-unfollowed.php 1 year ago voxel-user-mentioned-in-comment.php 1 year ago voxel-user-mentioned-in-post.php 1 year ago wall-post-approved.php 1 year ago
membership-plan-updated.php
131 lines
1 <?php
2 /**
3 * MembershipPlanUpdated.
4 * php version 5.6
5 *
6 * @category MembershipPlanUpdated
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\Voxel\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Traits\SingletonLoader;
18 use SureTriggers\Integrations\WordPress\WordPress;
19
20 if ( ! class_exists( 'MembershipPlanUpdated' ) ) :
21
22 /**
23 * MembershipPlanUpdated
24 *
25 * @category MembershipPlanUpdated
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 MembershipPlanUpdated {
35
36 /**
37 * Integration type.
38 *
39 * @var string
40 */
41 public $integration = 'Voxel';
42
43 /**
44 * Trigger name.
45 *
46 * @var string
47 */
48 public $trigger = 'voxel_membership_plan_updated';
49
50 use SingletonLoader;
51
52 /**
53 * Constructor
54 *
55 * @since 1.0.0
56 */
57 public function __construct() {
58 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
59 }
60
61 /**
62 * Register action.
63 *
64 * @param array $triggers trigger data.
65 * @return array
66 */
67 public function register( $triggers ) {
68 $triggers[ $this->integration ][ $this->trigger ] = [
69 'label' => __( 'Membership Plan Updated', 'suretriggers' ),
70 'action' => $this->trigger,
71 'common_action' => 'voxel/membership/pricing-plan-updated',
72 'function' => [ $this, 'trigger_listener' ],
73 'priority' => 10,
74 'accepted_args' => 3,
75 ];
76
77 return $triggers;
78 }
79
80 /**
81 * Trigger listener
82 *
83 * @param object $user User object.
84 * @param object $old_plan Old plan.
85 * @param object $new_plan New plan.
86 * @return void
87 */
88 public function trigger_listener( $user, $old_plan, $new_plan ) {
89
90 $user_id = method_exists( $user, 'get_id' ) ? $user->get_id() : ( isset( $user->ID ) ? $user->ID : 0 );
91
92 if ( 0 === $user_id ) {
93 return;
94 }
95
96 global $wpdb;
97 $context = WordPress::get_user_context( $user_id );
98 $meta_key = ( function_exists( '\Voxel\is_test_mode' ) && \Voxel\is_test_mode() ) ? 'voxel:test_plan' : 'voxel:plan';
99
100 $sql = "SELECT
101 m.user_id AS id,
102 m.meta_value AS details
103 FROM wp_usermeta as m
104 LEFT JOIN wp_users AS u ON m.user_id = u.ID
105 WHERE m.meta_key = %s AND m.user_id = %d AND JSON_UNQUOTE( JSON_EXTRACT( m.meta_value, '$.plan' ) ) != 'default'
106 ORDER BY m.user_id DESC
107 LIMIT 25 OFFSET 0";
108 $results = $wpdb->get_results( $wpdb->prepare( $sql, $meta_key, $user_id ), ARRAY_A );// @phpcs:ignore
109
110 if ( ! empty( $results[0]['details'] ) ) {
111 $context['details'] = json_decode( $results[0]['details'], true );
112 }
113
114 AutomationController::sure_trigger_handle_trigger(
115 [
116 'trigger' => $this->trigger,
117 'context' => $context,
118 ]
119 );
120 }
121 }
122
123 /**
124 * Ignore false positive
125 *
126 * @psalm-suppress UndefinedMethod
127 */
128 MembershipPlanUpdated::get_instance();
129
130 endif;
131