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 / triggers / user-spends-store-credit.php
suretriggers / src / Integrations / advanced-coupons / triggers Last commit date
user-credit-exceeds-specific-amount.php 2 years ago user-lifetime-credit-exceeds-specific-amount.php 2 years ago user-receives-store-credit.php 2 years ago user-spends-store-credit.php 2 years ago
user-spends-store-credit.php
135 lines
1 <?php
2 /**
3 * UserSpendsStoreCredit.
4 * php version 5.6
5 *
6 * @category UserSpendsStoreCredit
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\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Traits\SingletonLoader;
18 use SureTriggers\Integrations\WordPress\WordPress;
19 use SureTriggers\Integrations\WooCommerce\WooCommerce;
20
21 if ( ! class_exists( 'UserSpendsStoreCredit' ) ) :
22
23 /**
24 * UserSpendsStoreCredit
25 *
26 * @category UserSpendsStoreCredit
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 * @psalm-suppress UndefinedTrait
34 */
35 class UserSpendsStoreCredit {
36
37
38 /**
39 * Integration type.
40 *
41 * @var string
42 */
43 public $integration = 'AdvancedCoupons';
44
45
46 /**
47 * Trigger name.
48 *
49 * @var string
50 */
51 public $trigger = 'user_spends_store_credit';
52
53 use SingletonLoader;
54
55
56 /**
57 * Constructor
58 *
59 * @since 1.0.0
60 */
61 public function __construct() {
62 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
63 }
64
65 /**
66 * Register action.
67 *
68 * @param array $triggers trigger data.
69 * @return array
70 */
71 public function register( $triggers ) {
72
73 $triggers[ $this->integration ][ $this->trigger ] = [
74 'label' => __( 'User Spends Store Credit', 'suretriggers' ),
75 'action' => $this->trigger,
76 'common_action' => 'acfw_after_order_paid_with_store_credits',
77 'function' => [ $this, 'trigger_listener' ],
78 'priority' => 10,
79 'accepted_args' => 4,
80 ];
81
82 return $triggers;
83 }
84
85 /**
86 * Trigger listener
87 *
88 * @param int $amount Amount.
89 * @param int $new_balance New Balance.
90 * @param object $order Order.
91 * @param int $store_credit_entry Store Credit Entry.
92 * @return void
93 */
94 public function trigger_listener( $amount, $new_balance, $order, $store_credit_entry ) {
95
96 if ( empty( $amount ) || 0 == $amount ) {
97 return;
98 }
99
100 $balance = floatval( $amount );
101 $order_id = 0;
102 if ( is_object( $order ) ) {
103 if ( method_exists( $order, 'get_id' ) ) {
104 $order_id = $order->get_id();
105 if ( method_exists( $order, 'get_customer_id' ) ) {
106 $user_id = $order->get_customer_id();
107
108 $trigger_data['credit_amount'] = $balance;
109 $context = array_merge(
110 $trigger_data,
111 (array) WooCommerce::get_order_context( $order_id ),
112 WordPress::get_user_context( $user_id )
113 );
114
115 AutomationController::sure_trigger_handle_trigger(
116 [
117 'trigger' => $this->trigger,
118 'context' => $context,
119 ]
120 );
121 }
122 }
123 }
124 }
125 }
126
127 /**
128 * Ignore false positive
129 *
130 * @psalm-suppress UndefinedMethod
131 */
132 UserSpendsStoreCredit::get_instance();
133
134 endif;
135