PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.33
OttoKit: All-in-One Automation Platform v1.1.33
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 / profilepress / triggers / customer-updated.php
suretriggers / src / Integrations / profilepress / triggers Last commit date
customer-updated.php 10 months ago subscription-activated.php 10 months ago
customer-updated.php
136 lines
1 <?php
2 /**
3 * CustomerUpdated.
4 * php version 5.6
5 *
6 * @category CustomerUpdated
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.1.5
12 */
13
14 namespace SureTriggers\Integrations\ProfilePress\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Traits\SingletonLoader;
18 use SureTriggers\Models\Utilities;
19
20 if ( ! class_exists( 'CustomerUpdated' ) ) :
21
22 /**
23 * CustomerUpdated
24 *
25 * @category CustomerUpdated
26 * @package SureTriggers
27 * @author BSF <username@example.com>
28 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
29 * @link https://www.brainstormforce.com/
30 * @since 1.0.0
31 *
32 * @psalm-suppress UndefinedTrait
33 */
34 class CustomerUpdated {
35
36 /**
37 * Integration type.
38 *
39 * @var string
40 */
41 public $integration = 'ProfilePress';
42
43 /**
44 * Trigger name.
45 *
46 * @var string
47 */
48 public $trigger = 'profilepress_customer_updated';
49
50 use SingletonLoader;
51
52 /**
53 * Constructor
54 *
55 * @since 1.0.0
56 */
57 public function __construct() {
58 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
59 }
60
61 /**
62 * Register trigger.
63 *
64 * @param array $triggers trigger data.
65 * @return array
66 */
67 public function register( $triggers ) {
68
69 $triggers[ $this->integration ][ $this->trigger ] = [
70 'label' => __( 'A ProfilePress customer is updated', 'suretriggers' ),
71 'action' => $this->trigger,
72 'common_action' => 'ppress_customer_updated',
73 'function' => [ $this, 'trigger_listener' ],
74 'priority' => 10,
75 'accepted_args' => 1, // Hook passes customer_id.
76 ];
77 return $triggers;
78 }
79
80 /**
81 * Trigger listener
82 *
83 * @param int $customer_id ID of the updated customer.
84 * @since 1.0.0
85 *
86 * @return void|array
87 */
88 public function trigger_listener( $customer_id ) {
89
90 $context = [];
91 if ( empty( $customer_id ) ) {
92 return [
93 'status' => 'error',
94 'response' => __( 'No customer ID provided.', 'suretriggers' ),
95
96 ];
97 }
98
99 if ( class_exists( '\ProfilePress\Core\Membership\Models\Customer\CustomerFactory' ) ) {
100
101 $customer = \ProfilePress\Core\Membership\Models\Customer\CustomerFactory::fromId( absint( $customer_id ) );
102
103 if ( ! $customer || ! $customer->exists() ) {
104 return [
105 'status' => 'error',
106 'response' => __( 'Invalid customer ID or customer does not exist.', 'suretriggers' ),
107
108 ];
109 }
110
111 $customer_data = Utilities::object_to_array( $customer );
112
113 $context = [
114 'customer' => $customer_data,
115 ];
116 }
117
118
119 AutomationController::sure_trigger_handle_trigger(
120 [
121 'trigger' => $this->trigger,
122 'context' => $context,
123 ]
124 );
125 }
126 }
127
128 /**
129 * Boot class.
130 *
131 * @psalm-suppress UndefinedMethod
132 */
133 CustomerUpdated::get_instance();
134
135 endif;
136