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 / easy-affiliate / triggers / affiliate-payout-made.php
suretriggers / src / Integrations / easy-affiliate / triggers Last commit date
affiliate-added.php 2 years ago affiliate-payout-made.php 2 years ago affiliate-sale-recorded.php 2 years ago
affiliate-payout-made.php
140 lines
1 <?php
2 /**
3 * AffiliatePayoutMade.
4 * php version 5.6
5 *
6 * @category AffiliatePayoutMade
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\EasyAffiliate\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Traits\SingletonLoader;
18 use EasyAffiliate\Lib\ModelFactory;
19 use SureTriggers\Integrations\WordPress\WordPress;
20
21 if ( ! class_exists( 'AffiliatePayoutMade' ) ) :
22
23 /**
24 * AffiliatePayoutMade
25 *
26 * @category AffiliatePayoutMade
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 AffiliatePayoutMade {
36
37
38 /**
39 * Integration type.
40 *
41 * @var string
42 */
43 public $integration = 'EasyAffiliate';
44
45
46 /**
47 * Trigger name.
48 *
49 * @var string
50 */
51 public $trigger = 'affiliate_payout_made';
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' => __( 'Payout made for Affiliate', 'suretriggers' ),
75 'action' => $this->trigger,
76 'common_action' => 'esaf_event_payment-added',
77 'function' => [ $this, 'trigger_listener' ],
78 'priority' => 10,
79 'accepted_args' => 1,
80 ];
81
82 return $triggers;
83 }
84
85 /**
86 * Trigger listener
87 *
88 * @param object $event Event.
89 * @return void|array
90 */
91 public function trigger_listener( $event ) {
92
93 if ( ! is_object( $event ) || ! property_exists( $event, 'rec' ) ) {
94 return;
95 }
96
97 if ( ! is_object( $event->rec ) || ! property_exists( $event->rec, 'evt_id_type' ) || ! property_exists( $event->rec, 'evt_id' ) ) {
98 return;
99 }
100
101 if ( empty( $event->rec->evt_id_type ) && empty( $event->rec->evt_id ) && 'payment' !== $event->rec->evt_id_type ) {
102 return;
103 }
104
105 // Check if the properties exist before accessing them.
106 if ( property_exists( $event->rec, 'evt_id_type' ) && property_exists( $event->rec, 'evt_id' ) ) {
107 /**
108 *
109 * Ignore line
110 *
111 * @phpstan-ignore-next-line
112 */
113 $data = ModelFactory::fetch( $event->rec->evt_id_type, $event->rec->evt_id );
114 if ( is_object( $data ) && property_exists( $data, 'rec' ) ) {
115 $affiliate = get_object_vars( $data->rec );
116 if ( is_numeric( $affiliate['affiliate_id'] ) ) {
117 $id = (int) $affiliate['affiliate_id'];
118 $context = array_merge( WordPress::get_user_context( $id ), $affiliate );
119
120 AutomationController::sure_trigger_handle_trigger(
121 [
122 'trigger' => $this->trigger,
123 'context' => $context,
124 ]
125 );
126 }
127 }
128 }
129 }
130 }
131
132 /**
133 * Ignore false positive
134 *
135 * @psalm-suppress UndefinedMethod
136 */
137 AffiliatePayoutMade::get_instance();
138
139 endif;
140