PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.35
OttoKit: All-in-One Automation Platform v1.1.35
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-sale-recorded.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-sale-recorded.php
142 lines
1 <?php
2 /**
3 * AffiliateSaleRecorded.
4 * php version 5.6
5 *
6 * @category AffiliateSaleRecorded
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( 'AffiliateSaleRecorded' ) ) :
22
23 /**
24 * AffiliateSaleRecorded
25 *
26 * @category AffiliateSaleRecorded
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 AffiliateSaleRecorded {
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_sale_recorded';
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' => __( 'Sale Recorded for Affiliate', 'suretriggers' ),
75 'action' => $this->trigger,
76 'common_action' => 'esaf_event_transaction-recorded',
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 ) && 'transaction' !== $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
115 if ( is_object( $data ) && property_exists( $data, 'rec' ) ) {
116 $affiliate = get_object_vars( $data->rec );
117 if ( is_numeric( $affiliate['affiliate_id'] ) ) {
118 $id = (int) $affiliate['affiliate_id'];
119 $context = array_merge( WordPress::get_user_context( $id ), $affiliate );
120
121 AutomationController::sure_trigger_handle_trigger(
122 [
123 'trigger' => $this->trigger,
124 'context' => $context,
125 ]
126 );
127 }
128 }
129 }
130 }
131
132 }
133
134 /**
135 * Ignore false positive
136 *
137 * @psalm-suppress UndefinedMethod
138 */
139 AffiliateSaleRecorded::get_instance();
140
141 endif;
142