PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.0.42
OttoKit: All-in-One Automation Platform v1.0.42
1.1.38 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 / wordpress / actions / send-mail.php
suretriggers / src / Integrations / wordpress / actions Last commit date
add-new-role.php 2 years ago change-role.php 2 years ago create-comment.php 2 years ago create-post.php 2 years ago create-user-if-not-exists.php 2 years ago find-user-by-email.php 2 years ago find-user-by-id.php 2 years ago find-user-meta-by-key.php 2 years ago find-user-metas.php 2 years ago remove-role.php 2 years ago remove-user-meta.php 2 years ago remove-user.php 2 years ago send-mail.php 2 years ago set-post-meta.php 2 years ago set-user-meta.php 2 years ago update-post.php 2 years ago update-user.php 2 years ago
send-mail.php
161 lines
1 <?php
2 /**
3 * SendMail.
4 * php version 5.6
5 *
6 * @category SendMail
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\Wordpress\Actions;
15
16 use Exception;
17 use SureTriggers\Integrations\AutomateAction;
18 use SureTriggers\Integrations\WordPress\WordPress;
19 use SureTriggers\Traits\SingletonLoader;
20
21 /**
22 * SendMail
23 *
24 * @category SendMail
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 SendMail extends AutomateAction {
32
33 /**
34 * Integration type.
35 *
36 * @var string
37 */
38 public $integration = 'WordPress';
39
40 /**
41 * Action name.
42 *
43 * @var string
44 */
45 public $action = 'send_mail';
46
47 use SingletonLoader;
48
49 /**
50 * Register action.
51 *
52 * @param array $actions action data.
53 * @return array
54 */
55 public function register( $actions ) {
56 $actions[ $this->integration ][ $this->action ] = [
57 'label' => __( 'Send an email', 'suretriggers' ),
58 'action' => 'send_mail',
59 'function' => [ $this, 'action_listener' ],
60 ];
61
62 return $actions;
63 }
64
65 /**
66 * Action listener.
67 *
68 * @param int $user_id user_id.
69 * @param int $automation_id automation_id.
70 * @param array $fields fields.
71 * @param array $selected_options selectedOptions.
72 * @return array|mixed
73 * @throws Exception Exception.
74 */
75 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
76 $result_arr = [];
77
78 foreach ( $fields as $field ) {
79 if ( ! isset( $field['name'] ) ) {
80 continue;
81 }
82
83 $result_arr[ $field['name'] ] = isset( $selected_options[ $field['name'] ] ) ? $selected_options[ $field['name'] ] : '';
84 }
85
86 $result_arr['headers'] = [];
87 $result_arr['headers'][] = 'Content-Type: text/html; charset=UTF-8';
88
89 $cc_email = isset( $selected_options['cc_email'] ) ? $selected_options['cc_email'] : '';
90 $bcc_email = isset( $selected_options['bcc_email'] ) ? $selected_options['bcc_email'] : '';
91 $from_email = isset( $selected_options['from_email'] ) ? $selected_options['from_email'] : '';
92 $from_name = isset( $selected_options['from_name'] ) ? $selected_options['from_name'] : '';
93
94 $to_email = $result_arr['to_email'];
95 $is_valid = WordPress::validate_email( $to_email );
96
97 if ( ! $is_valid->valid ) {
98 if ( $is_valid->multiple ) {
99 throw new Exception( 'One or more To email address is not valid' );
100 } else {
101 throw new Exception( 'To email address is not valid' );
102 }
103 }
104
105 if ( ! empty( $from_email ) ) {
106 $is_valid = WordPress::validate_email( $from_email );
107
108 if ( ! $is_valid->valid ) {
109 if ( $is_valid->multiple ) {
110 throw new Exception( 'One or more From email address is not valid' );
111 } else {
112 throw new Exception( 'From email address is not valid' );
113 }
114 }
115 if ( ! empty( $from_name ) ) {
116 $result_arr['headers'][] = 'From: ' . $from_name . ' <' . $from_email . '>';
117 } else {
118 $result_arr['headers'][] = 'From: <' . $from_email . '>';
119 }
120 }
121
122
123 if ( ! empty( $cc_email ) ) {
124 $is_valid = WordPress::validate_email( $cc_email );
125
126 if ( ! $is_valid->valid ) {
127 if ( $is_valid->multiple ) {
128 throw new Exception( 'One or more CC email address is not valid' );
129 } else {
130 throw new Exception( 'CC email address is not valid' );
131 }
132 }
133
134 $result_arr['headers'][] = 'CC: ' . $cc_email;
135 }
136 if ( ! empty( $bcc_email ) ) {
137 $is_valid = WordPress::validate_email( $bcc_email );
138
139 if ( ! $is_valid->valid ) {
140 if ( $is_valid->multiple ) {
141 throw new Exception( 'One or more BCC email address is not valid' );
142 } else {
143 throw new Exception( 'BCC email address is not valid' );
144 }
145 }
146
147 $result_arr['headers'][] = 'BCC: ' . $cc_email;
148 }
149
150 $result = wp_mail( $to_email, $result_arr['subject'], $result_arr['email_body'], $result_arr['headers'], $attachments = [] ); //phpcs:ignore WordPressVIPMinimum.Functions.RestrictedFunctions.wp_mail_wp_mail
151
152 if ( ! $result ) {
153 throw new Exception( 'Email sending failed!' );
154 }
155
156 return $result_arr;
157 }
158 }
159
160 SendMail::get_instance();
161