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-purchased-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-purchased-download.php
143 lines
1 <?php
2 /**
3 * FindIfUserPurchasedDownload.
4 * php version 5.6
5 *
6 * @category FindIfUserPurchasedDownload
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 SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Traits\SingletonLoader;
18 use SureTriggers\Integrations\EDD\EDD;
19 use Exception;
20
21 /**
22 * FindIfUserPurchasedDownload
23 *
24 * @category FindIfUserPurchasedDownload
25 * @package SureTriggers
26 * @author BSF <username@example.com>
27 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
28 * @link https://www.brainstormforce.com/
29 * @since 1.0.0
30 */
31 class FindIfUserPurchasedDownload extends AutomateAction {
32
33 /**
34 * Integration type.
35 *
36 * @var string
37 */
38 public $integration = 'EDD';
39
40 /**
41 * Action name.
42 *
43 * @var string
44 */
45 public $action = 'find_user_purchased_download';
46
47 use SingletonLoader;
48
49 /**
50 * Register action.
51 *
52 * @param array $actions action data.
53 * @return array
54 */
55 public function register( $actions ) {
56 $actions[ $this->integration ][ $this->action ] = [
57 'label' => __( 'User has purchased a download', 'suretriggers' ),
58 'action' => $this->action,
59 'function' => [ $this, 'action_listener' ],
60 ];
61
62 return $actions;
63 }
64
65 /**
66 * Action listener.
67 *
68 * @param int $user_id user_id.
69 * @param int $automation_id automation_id.
70 * @param array $fields fields.
71 * @param array $selected_options selected_options.
72 * @return array|bool
73 * @throws Exception Exception.
74 */
75 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
76 global $wpdb;
77 if ( empty( $user_id ) ) {
78 $email = $selected_options['wp_user_email'];
79 $user = get_user_by( 'email', $email );
80 if ( $user ) {
81 $user_id = $user->ID;
82 }
83 }
84 if ( ! empty( $selected_options['download_id'] ) ) {
85 $download_id = $selected_options['download_id'];
86 } else {
87 $download_id = 0;
88 }
89 if ( ! empty( $selected_options['price_id'] ) ) {
90 $price_id = $selected_options['price_id'];
91 } else {
92 $price_id = 0;
93 }
94 if ( $download_id > 0 ) {
95 $args = [
96 'download' => $download_id,
97 'user' => $user_id,
98 'output' => 'payments',
99 ];
100 } else {
101 $args = [
102 'user' => $user_id,
103 ];
104 }
105
106
107 if ( ! function_exists( 'edd_get_payments' ) ) {
108 return false;
109 }
110 $payments = edd_get_payments( $args );
111 $dynamic_response = [];
112 if ( ! $payments ) {
113 $dynamic_response['count'] = '0';
114 $dynamic_response['message'] = 'User has not purchased any downloads.';
115 $dynamic_response['data'] = [];
116
117 } else {
118 $data = (array) EDD::get_all_product_purchase_context( $payments, 'edd_action', $download_id );
119 $price_ids = array_column( $data, 'price_id' );
120
121 if ( $price_id > 0 ) {
122 if ( in_array( $price_id, $price_ids ) ) {
123 $dynamic_response['data'] = $data;
124 $dynamic_response['count'] = count( $data );
125 $dynamic_response['message'] = 'User has purchased downloads.';
126 } else {
127 $dynamic_response['count'] = '0';
128 $dynamic_response['message'] = 'User has not purchased any downloads.';
129 $dynamic_response['data'] = [];
130 }
131 } else {
132 $dynamic_response['data'] = $data;
133 $dynamic_response['count'] = count( $data );
134 $dynamic_response['message'] = 'User has purchased downloads.';
135 }
136 }
137
138 return $dynamic_response;
139 }
140 }
141
142 FindIfUserPurchasedDownload::get_instance();
143