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 / edd / actions / find-user-have-subscription-for-specific-download.php
suretriggers / src / Integrations / edd / actions Last commit date
create-discount.php 11 months ago create-purchase.php 9 months ago delete-discount.php 11 months ago edd-create-discount.php 11 months ago fetch-discount-details.php 11 months ago find-user-have-active-inactive-license-for-specific-download.php 2 years ago find-user-have-subscription-for-specific-download.php 2 years ago find-user-purchased-download.php 11 months ago revoke-purchase.php 9 months ago update-license-status.php 9 months ago update-purchase-meta.php 9 months ago update-purchase.php 9 months ago
find-user-have-subscription-for-specific-download.php
136 lines
1 <?php
2 /**
3 * FindIfUserHasActiveSubscriptionDownload.
4 * php version 5.6
5 *
6 * @category FindIfUserHasActiveSubscriptionDownload
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\EDD\Actions;
15
16 use EDD_Customer;
17 use SureTriggers\Integrations\AutomateAction;
18 use SureTriggers\Traits\SingletonLoader;
19 use SureTriggers\Integrations\EDD\EDD;
20 use Exception;
21
22 /**
23 * FindIfUserHasActiveSubscriptionDownload
24 *
25 * @category FindIfUserHasActiveSubscriptionDownload
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 class FindIfUserHasActiveSubscriptionDownload extends AutomateAction {
33
34 /**
35 * Integration type.
36 *
37 * @var string
38 */
39 public $integration = 'EDD';
40
41 /**
42 * Action name.
43 *
44 * @var string
45 */
46 public $action = 'find_user_have_subscription_for_specific_download';
47
48 use SingletonLoader;
49
50 /**
51 * Register action.
52 *
53 * @param array $actions action data.
54 * @return array
55 */
56 public function register( $actions ) {
57 $actions[ $this->integration ][ $this->action ] = [
58 'label' => __( 'User have subscription for download', 'suretriggers' ),
59 'action' => $this->action,
60 'function' => [ $this, 'action_listener' ],
61 ];
62
63 return $actions;
64 }
65
66 /**
67 * Action listener.
68 *
69 * @param int $user_id user_id.
70 * @param int $automation_id automation_id.
71 * @param array $fields fields.
72 * @param array $selected_options selected_options.
73 * @return array|bool
74 * @throws Exception Exception.
75 */
76 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
77 global $wpdb;
78 if ( empty( $user_id ) ) {
79 $email = $selected_options['wp_user_email'];
80 $user = get_user_by( 'email', $email );
81 if ( $user ) {
82 $user_id = $user->ID;
83 }
84 }
85
86 if ( ! empty( $selected_options['download_id'] ) ) {
87 $download_id = $selected_options['download_id'];
88 } else {
89 $download_id = 0;
90 }
91 if ( ! empty( $selected_options['price_id'] ) ) {
92 $price_id = $selected_options['price_id'];
93 } else {
94 $price_id = 0;
95 }
96
97 if ( -1 === $price_id ) {
98 $result = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}edd_subscriptions WHERE product_id=%d AND status='active' order by id DESC", $download_id ) );
99 } else {
100 $result = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}edd_subscriptions WHERE product_id=%d AND price_id=%d AND status='active' order by id DESC", $download_id, $price_id ) );
101
102 }
103 if ( ! class_exists( 'EDD_Customer' ) ) {
104 return false;
105 }
106 $dynamic_response = [];
107 if ( ! $result ) {
108 $dynamic_response['count'] = '0';
109 $dynamic_response['data'] = [];
110
111 } else {
112 $customer_ids = array_column( $result, 'customer_id' );
113 $user_ids = [];
114 foreach ( $customer_ids as $customer_id ) {
115 $customer = new EDD_Customer( $customer_id );
116 $user_ids[] = $customer->user_id;
117 }
118 if ( $user_id > 0 ) {
119 if ( in_array( $user_id, $user_ids ) ) {
120 $dynamic_response['data'] = $result;
121 $dynamic_response['count'] = count( $result );
122 } else {
123 $dynamic_response['count'] = '0';
124 $dynamic_response['data'] = [];
125 }
126 } else {
127 $dynamic_response['data'] = $result;
128 $dynamic_response['count'] = count( $result );
129 }
130 }
131 return $dynamic_response;
132 }
133 }
134
135 FindIfUserHasActiveSubscriptionDownload::get_instance();
136