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 / advanced-coupons / actions / add-store-credit-to-user.php
suretriggers / src / Integrations / advanced-coupons / actions Last commit date
add-store-credit-to-user.php 11 months ago create-coupon.php 7 months ago remove-store-credit-from-user.php 11 months ago
add-store-credit-to-user.php
158 lines
1 <?php
2 /**
3 * AddStoreCreditToUser.
4 * php version 5.6
5 *
6 * @category AddStoreCreditToUser
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\AdvancedCoupons\Actions;
15
16 use Exception;
17 use SureTriggers\Integrations\AutomateAction;
18 use SureTriggers\Integrations\WordPress\WordPress;
19 use ACFWF\Models\Objects\Store_Credit_Entry;
20 use ACFWF\Helpers\Plugin_Constants;
21 use SureTriggers\Traits\SingletonLoader;
22
23 /**
24 * AddStoreCreditToUser
25 *
26 * @category AddStoreCreditToUser
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 class AddStoreCreditToUser extends AutomateAction {
34
35 /**
36 * Integration type.
37 *
38 * @var string
39 */
40 public $integration = 'AdvancedCoupons';
41
42 /**
43 * Action name.
44 *
45 * @var string
46 */
47 public $action = 'add_store_credit_to_user';
48
49 use SingletonLoader;
50
51 /**
52 * Register a action.
53 *
54 * @param array $actions actions.
55 * @return array
56 */
57 public function register( $actions ) {
58 $actions[ $this->integration ][ $this->action ] = [
59 'label' => __( 'Add Store Credit to User', 'suretriggers' ),
60 'action' => $this->action,
61 'function' => [ $this, 'action_listener' ],
62 ];
63
64 return $actions;
65 }
66
67 /**
68 * Action listener.
69 *
70 * @param int $user_id user_id.
71 * @param int $automation_id automation_id.
72 * @param array $fields fields.
73 * @param array $selected_options selectedOptions.
74 * @throws Exception Exception.
75 *
76 * @return bool|array|void
77 */
78 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
79 $amount = floatval( $selected_options['credit_amount'] );
80
81 $user_id = $selected_options['wp_user_email'];
82
83 if ( is_email( $user_id ) ) {
84 $user = get_user_by( 'email', $user_id );
85
86 if ( $user ) {
87 $user_id = $user->ID;
88 if ( $amount <= 0 ) {
89 return false;
90 }
91
92 $params = [
93 'user_id' => $user_id,
94 'type' => 'increase',
95 'amount' => $amount,
96 'object_id' => $user_id,
97 'action' => 'admin_increase',
98 'date' => gmdate( 'Y-m-d H:i:s' ),
99 'note' => 'SureTriggers',
100 ];
101
102 $date_format = 'Y-m-d H:i:s';
103 if ( class_exists( 'ACFWF\Models\Objects\Store_Credit_Entry' ) ) {
104 $store_credit_entry = new \ACFWF\Models\Objects\Store_Credit_Entry();
105
106 foreach ( $params as $prop => $value ) {
107 if ( $value && 'date' === $prop ) {
108 $store_credit_entry->set_date_prop( $prop, $value, $date_format );
109 } else {
110 $store_credit_entry->set_prop( $prop, $value );
111 }
112
113 if ( 'action' === $prop && in_array(
114 $value,
115 [
116 'admin_increase',
117 'admin_increase_auto',
118 'admin_decrease',
119 ],
120 true
121 ) ) {
122 $store_credit_entry->set_prop( 'object_id', $user_id );
123 }
124 }
125 $check = $store_credit_entry->save();
126 if ( is_wp_error( $check ) ) {
127 return [
128 'status' => 'error',
129 'message' => 'The amount enter is not valid.',
130 ];
131 }
132 if ( function_exists( 'ACFWF' ) ) {
133 $cur_balance = apply_filters( 'acfw_filter_amount', \ACFWF()->Store_Credits_Calculate->get_customer_balance( $user_id ) );
134 $context['current_balance'] = $cur_balance;
135
136 return array_merge(
137 WordPress::get_user_context( $user_id ),
138 $context
139 );
140 }
141 }
142 } else {
143 return [
144 'status' => 'error',
145 'message' => 'Invalid User.',
146 ];
147 }
148 } else {
149 return [
150 'status' => 'error',
151 'message' => 'Please enter valid email address.',
152 ];
153 }
154 }
155 }
156
157 AddStoreCreditToUser::get_instance();
158