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 / fluent-support / actions / create-or-obtain-customer.php
suretriggers / src / Integrations / fluent-support / actions Last commit date
add-tag-to-ticket.php 11 months ago block-user.php 11 months ago create-or-obtain-customer.php 11 months ago create-ticket.php 11 months ago get-tickets.php 11 months ago reply_to_ticket_as_agent.php 11 months ago
create-or-obtain-customer.php
117 lines
1 <?php
2 /**
3 * CreateOrObtainCustomer.
4 * php version 5.6
5 *
6 * @category CreateOrObtainCustomer
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\FluentSupport\Actions;
15
16 use Exception;
17 use SureTriggers\Integrations\AutomateAction;
18 use SureTriggers\Traits\SingletonLoader;
19 use FluentSupport\App\Models\Customer;
20
21 /**
22 * CreateOrObtainCustomer
23 *
24 * @category CreateOrObtainCustomer
25 * @package SureTriggers
26 * @author BSF <username@example.com>
27 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
28 * @link https://www.brainstormforce.com/
29 * @since 1.0.0
30 */
31 class CreateOrObtainCustomer extends AutomateAction {
32
33
34 /**
35 * Integration type.
36 *
37 * @var string
38 */
39 public $integration = 'FluentSupport';
40
41 /**
42 * Action name.
43 *
44 * @var string
45 */
46 public $action = 'create_or_obtain_customer_fluent_support';
47
48 use SingletonLoader;
49
50 /**
51 * Register a action.
52 *
53 * @param array $actions actions.
54 * @return array
55 */
56 public function register( $actions ) {
57
58 $actions[ $this->integration ][ $this->action ] = [
59 'label' => __( 'Create Or Obtain Customer', 'suretriggers' ),
60 'action' => $this->action,
61 'function' => [ $this, 'action_listener' ],
62 ];
63
64 return $actions;
65
66 }
67
68 /**
69 * Action listener.
70 *
71 * @param int $user_id user_id.
72 * @param int $automation_id automation_id.
73 * @param array $fields fields.
74 * @param array $selected_options selected_options.
75 *
76 * @return array|void
77 *
78 * @throws Exception Exception.
79 */
80 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
81 $email = sanitize_email( $selected_options['customer_email'] );
82 $first_name = sanitize_text_field( $selected_options['first_name'] );
83 $last_name = sanitize_text_field( $selected_options['last_name'] );
84
85 if ( ! is_email( $email ) ) {
86 return [
87 'status' => 'error',
88 'message' => 'Invalid email.',
89 ];
90 }
91
92 if ( ! class_exists( 'FluentSupport\App\Models\Customer' ) ) {
93 return [
94 'status' => 'error',
95 'message' => 'Error: Plugin did not installed correctly. Some classes are missing.',
96 ];
97 }
98
99 $customer_record = Customer::where( 'email', $email )->first();
100
101 if ( ! $customer_record ) {
102 $customer = [
103 'email' => $email,
104 'first_name' => $first_name,
105 'last_name' => $last_name,
106 ];
107
108 Customer::create( $customer );
109 $customer_record = Customer::where( 'email', $email )->first();
110 }
111
112 return $customer_record->getAttributes();
113 }
114 }
115
116 CreateOrObtainCustomer::get_instance();
117