@@ -254,6 +254,7 @@ |
||
254 | 254 | * - replace certain table elements with a space |
255 | 255 | * - add a placeholder for plain-text bullets to list elements |
256 | 256 | * - strip all remaining HTML tags |
257 | + * @param string $string |
|
257 | 258 | * @return string |
258 | 259 | */ |
259 | 260 | protected function stripHtmlTags( $string ) |
@@ -42,7 +42,7 @@ discard block |
||
42 | 42 | */ |
43 | 43 | protected $to; |
44 | 44 | |
45 | - public function __construct( Template $template, Utility $utility ) |
|
45 | + public function __construct(Template $template, Utility $utility) |
|
46 | 46 | { |
47 | 47 | $this->template = $template; |
48 | 48 | $this->utility = $utility; |
@@ -51,19 +51,19 @@ discard block |
||
51 | 51 | /** |
52 | 52 | * @return Email |
53 | 53 | */ |
54 | - public function compose( array $email ) |
|
54 | + public function compose(array $email) |
|
55 | 55 | { |
56 | - $email = $this->normalize( $email ); |
|
56 | + $email = $this->normalize($email); |
|
57 | 57 | |
58 | 58 | $this->attachments = $email['attachments']; |
59 | - $this->headers = $this->buildHeaders( $email ); |
|
60 | - $this->message = $this->buildHtmlMessage( $email ); |
|
59 | + $this->headers = $this->buildHeaders($email); |
|
60 | + $this->message = $this->buildHtmlMessage($email); |
|
61 | 61 | $this->subject = $email['subject']; |
62 | 62 | $this->to = $email['to']; |
63 | 63 | |
64 | - add_action( 'phpmailer_init', function( PHPMailer $phpmailer ) { |
|
65 | - if( $phpmailer->ContentType === 'text/plain' || !empty( $phpmailer->AltBody ))return; |
|
66 | - $phpmailer->AltBody = $this->buildPlainTextMessage( $phpmailer->Body ); |
|
64 | + add_action('phpmailer_init', function(PHPMailer $phpmailer) { |
|
65 | + if ($phpmailer->ContentType === 'text/plain' || !empty($phpmailer->AltBody))return; |
|
66 | + $phpmailer->AltBody = $this->buildPlainTextMessage($phpmailer->Body); |
|
67 | 67 | }); |
68 | 68 | |
69 | 69 | return $this; |
@@ -74,10 +74,10 @@ discard block |
||
74 | 74 | * |
75 | 75 | * @return string|null |
76 | 76 | */ |
77 | - public function read( $plaintext = false ) |
|
77 | + public function read($plaintext = false) |
|
78 | 78 | { |
79 | 79 | return $plaintext |
80 | - ? $this->buildPlainTextMessage( $this->message ) |
|
80 | + ? $this->buildPlainTextMessage($this->message) |
|
81 | 81 | : $this->message; |
82 | 82 | } |
83 | 83 | |
@@ -86,7 +86,7 @@ discard block |
||
86 | 86 | */ |
87 | 87 | public function send() |
88 | 88 | { |
89 | - if( !$this->message || !$this->subject || !$this->to )return; |
|
89 | + if (!$this->message || !$this->subject || !$this->to)return; |
|
90 | 90 | |
91 | 91 | $sent = wp_mail( |
92 | 92 | $this->to, |
@@ -104,7 +104,7 @@ discard block |
||
104 | 104 | /** |
105 | 105 | * @return array |
106 | 106 | */ |
107 | - protected function buildHeaders( array $email ) |
|
107 | + protected function buildHeaders(array $email) |
|
108 | 108 | { |
109 | 109 | $allowed = [ |
110 | 110 | 'bcc', |
@@ -113,34 +113,34 @@ discard block |
||
113 | 113 | 'reply-to', |
114 | 114 | ]; |
115 | 115 | |
116 | - $headers = array_intersect_key( $email, array_flip( $allowed )); |
|
117 | - $headers = array_filter( $headers ); |
|
116 | + $headers = array_intersect_key($email, array_flip($allowed)); |
|
117 | + $headers = array_filter($headers); |
|
118 | 118 | |
119 | - foreach( $headers as $key => $value ) { |
|
120 | - unset( $headers[ $key ] ); |
|
121 | - $headers[] = sprintf( '%s: %s', $key, $value ); |
|
119 | + foreach ($headers as $key => $value) { |
|
120 | + unset($headers[$key]); |
|
121 | + $headers[] = sprintf('%s: %s', $key, $value); |
|
122 | 122 | } |
123 | 123 | |
124 | 124 | $headers[] = 'Content-Type: text/html'; |
125 | 125 | |
126 | - return apply_filters( 'castor/email/headers', $headers, $this ); |
|
126 | + return apply_filters('castor/email/headers', $headers, $this); |
|
127 | 127 | } |
128 | 128 | |
129 | 129 | /** |
130 | 130 | * @return string |
131 | 131 | */ |
132 | - protected function buildHtmlMessage( array $email ) |
|
132 | + protected function buildHtmlMessage(array $email) |
|
133 | 133 | { |
134 | - $body = $this->renderTemplate( 'email' ); |
|
134 | + $body = $this->renderTemplate('email'); |
|
135 | 135 | |
136 | - $message = !empty( $email['template'] ) |
|
137 | - ? $this->renderTemplate( $email['template'], $email['template-tags'] ) |
|
136 | + $message = !empty($email['template']) |
|
137 | + ? $this->renderTemplate($email['template'], $email['template-tags']) |
|
138 | 138 | : $email['message']; |
139 | 139 | |
140 | - $message = $this->filterHtml( $email['before'] . $message . $email['after'] ); |
|
141 | - $message = str_replace( '{message}', $message, $body ); |
|
140 | + $message = $this->filterHtml($email['before'] . $message . $email['after']); |
|
141 | + $message = str_replace('{message}', $message, $body); |
|
142 | 142 | |
143 | - return apply_filters( 'castor/email/message', $message, 'html', $this ); |
|
143 | + return apply_filters('castor/email/message', $message, 'html', $this); |
|
144 | 144 | } |
145 | 145 | |
146 | 146 | /** |
@@ -148,9 +148,9 @@ discard block |
||
148 | 148 | * |
149 | 149 | * @return string |
150 | 150 | */ |
151 | - protected function buildPlainTextMessage( $message ) |
|
151 | + protected function buildPlainTextMessage($message) |
|
152 | 152 | { |
153 | - return apply_filters( 'castor/email/message', $this->stripHtmlTags( $message ), 'text', $this ); |
|
153 | + return apply_filters('castor/email/message', $this->stripHtmlTags($message), 'text', $this); |
|
154 | 154 | } |
155 | 155 | |
156 | 156 | /** |
@@ -158,24 +158,24 @@ discard block |
||
158 | 158 | * |
159 | 159 | * @return string |
160 | 160 | */ |
161 | - protected function filterHtml( $message ) |
|
161 | + protected function filterHtml($message) |
|
162 | 162 | { |
163 | - $message = strip_shortcodes( $message ); |
|
164 | - $message = wptexturize( $message ); |
|
165 | - $message = wpautop( $message ); |
|
166 | - $message = str_replace( ['<> ', ']]>'], ['', ']]>'], $message ); |
|
167 | - $message = stripslashes( $message ); |
|
163 | + $message = strip_shortcodes($message); |
|
164 | + $message = wptexturize($message); |
|
165 | + $message = wpautop($message); |
|
166 | + $message = str_replace(['<> ', ']]>'], ['', ']]>'], $message); |
|
167 | + $message = stripslashes($message); |
|
168 | 168 | return $message; |
169 | 169 | } |
170 | 170 | |
171 | 171 | /** |
172 | 172 | * @return array |
173 | 173 | */ |
174 | - protected function normalize( $email ) |
|
174 | + protected function normalize($email) |
|
175 | 175 | { |
176 | - $from = sprintf( '%s <%s>', |
|
177 | - wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ), |
|
178 | - get_option( 'admin_email' ) |
|
176 | + $from = sprintf('%s <%s>', |
|
177 | + wp_specialchars_decode(get_option('blogname'), ENT_QUOTES), |
|
178 | + get_option('admin_email') |
|
179 | 179 | ); |
180 | 180 | |
181 | 181 | $defaults = [ |
@@ -193,13 +193,13 @@ discard block |
||
193 | 193 | 'to' => '', |
194 | 194 | ]; |
195 | 195 | |
196 | - $email = shortcode_atts( $defaults, $email ); |
|
196 | + $email = shortcode_atts($defaults, $email); |
|
197 | 197 | |
198 | - if( empty( $email['reply-to'] )) { |
|
198 | + if (empty($email['reply-to'])) { |
|
199 | 199 | $email['reply-to'] = $email['from']; |
200 | 200 | } |
201 | 201 | |
202 | - return apply_filters( 'castor/email/compose', $email, $this ); |
|
202 | + return apply_filters('castor/email/compose', $email, $this); |
|
203 | 203 | } |
204 | 204 | |
205 | 205 | /** |
@@ -219,20 +219,20 @@ discard block |
||
219 | 219 | * |
220 | 220 | * @return void|string |
221 | 221 | */ |
222 | - protected function renderTemplate( $templatePath, array $args = [] ) |
|
222 | + protected function renderTemplate($templatePath, array $args = []) |
|
223 | 223 | { |
224 | - $file = $this->template->get( sprintf( 'castor/%s', $templatePath )); |
|
224 | + $file = $this->template->get(sprintf('castor/%s', $templatePath)); |
|
225 | 225 | |
226 | - if( !file_exists( $file )) { |
|
227 | - $file = sprintf( '%s/templates/%s.php', dirname( __DIR__ ), $templatePath ); |
|
226 | + if (!file_exists($file)) { |
|
227 | + $file = sprintf('%s/templates/%s.php', dirname(__DIR__), $templatePath); |
|
228 | 228 | } |
229 | - if( !file_exists( $file ))return; |
|
229 | + if (!file_exists($file))return; |
|
230 | 230 | |
231 | 231 | ob_start(); |
232 | 232 | include $file; |
233 | 233 | $template = ob_get_clean(); |
234 | 234 | |
235 | - return $this->renderTemplateString( $template, $args, $print ); |
|
235 | + return $this->renderTemplateString($template, $args, $print); |
|
236 | 236 | } |
237 | 237 | |
238 | 238 | /** |
@@ -240,12 +240,12 @@ discard block |
||
240 | 240 | * |
241 | 241 | * @return string |
242 | 242 | */ |
243 | - protected function renderTemplateString( $template, array $args = [] ) |
|
243 | + protected function renderTemplateString($template, array $args = []) |
|
244 | 244 | { |
245 | - foreach( $args as $key => $value ) { |
|
246 | - $template = str_replace( sprintf( '{%s}', $key ), $value, $template ); |
|
245 | + foreach ($args as $key => $value) { |
|
246 | + $template = str_replace(sprintf('{%s}', $key), $value, $template); |
|
247 | 247 | } |
248 | - return trim( $template ); |
|
248 | + return trim($template); |
|
249 | 249 | } |
250 | 250 | |
251 | 251 | /** |
@@ -256,16 +256,16 @@ discard block |
||
256 | 256 | * - strip all remaining HTML tags |
257 | 257 | * @return string |
258 | 258 | */ |
259 | - protected function stripHtmlTags( $string ) |
|
259 | + protected function stripHtmlTags($string) |
|
260 | 260 | { |
261 | - $string = preg_replace( '@<(embed|head|noembed|noscript|object|script|style)[^>]*?>.*?</\\1>@siu', '', $string ); |
|
262 | - $string = preg_replace( '@</(div|h[1-9]|p|pre|tr)@iu', "\r\n\$0", $string ); |
|
263 | - $string = preg_replace( '@</(td|th)@iu', " \$0", $string ); |
|
264 | - $string = preg_replace( '@<(li)[^>]*?>@siu', "\$0-o-^-o-", $string ); |
|
265 | - $string = wp_strip_all_tags( $string ); |
|
266 | - $string = wp_specialchars_decode( $string, ENT_QUOTES ); |
|
267 | - $string = preg_replace( '/\v(?:[\v\h]+){2,}/', "\r\n\r\n", $string ); |
|
268 | - $string = str_replace( '-o-^-o-', ' - ', $string ); |
|
269 | - return html_entity_decode( $string, ENT_QUOTES, 'UTF-8' ); |
|
261 | + $string = preg_replace('@<(embed|head|noembed|noscript|object|script|style)[^>]*?>.*?</\\1>@siu', '', $string); |
|
262 | + $string = preg_replace('@</(div|h[1-9]|p|pre|tr)@iu', "\r\n\$0", $string); |
|
263 | + $string = preg_replace('@</(td|th)@iu', " \$0", $string); |
|
264 | + $string = preg_replace('@<(li)[^>]*?>@siu', "\$0-o-^-o-", $string); |
|
265 | + $string = wp_strip_all_tags($string); |
|
266 | + $string = wp_specialchars_decode($string, ENT_QUOTES); |
|
267 | + $string = preg_replace('/\v(?:[\v\h]+){2,}/', "\r\n\r\n", $string); |
|
268 | + $string = str_replace('-o-^-o-', ' - ', $string); |
|
269 | + return html_entity_decode($string, ENT_QUOTES, 'UTF-8'); |
|
270 | 270 | } |
271 | 271 | } |
@@ -62,7 +62,9 @@ discard block |
||
62 | 62 | $this->to = $email['to']; |
63 | 63 | |
64 | 64 | add_action( 'phpmailer_init', function( PHPMailer $phpmailer ) { |
65 | - if( $phpmailer->ContentType === 'text/plain' || !empty( $phpmailer->AltBody ))return; |
|
65 | + if( $phpmailer->ContentType === 'text/plain' || !empty( $phpmailer->AltBody )) { |
|
66 | + return; |
|
67 | + } |
|
66 | 68 | $phpmailer->AltBody = $this->buildPlainTextMessage( $phpmailer->Body ); |
67 | 69 | }); |
68 | 70 | |
@@ -86,7 +88,9 @@ discard block |
||
86 | 88 | */ |
87 | 89 | public function send() |
88 | 90 | { |
89 | - if( !$this->message || !$this->subject || !$this->to )return; |
|
91 | + if( !$this->message || !$this->subject || !$this->to ) { |
|
92 | + return; |
|
93 | + } |
|
90 | 94 | |
91 | 95 | $sent = wp_mail( |
92 | 96 | $this->to, |
@@ -226,7 +230,9 @@ discard block |
||
226 | 230 | if( !file_exists( $file )) { |
227 | 231 | $file = sprintf( '%s/templates/%s.php', dirname( __DIR__ ), $templatePath ); |
228 | 232 | } |
229 | - if( !file_exists( $file ))return; |
|
233 | + if( !file_exists( $file )) { |
|
234 | + return; |
|
235 | + } |
|
230 | 236 | |
231 | 237 | ob_start(); |
232 | 238 | include $file; |
@@ -2,7 +2,7 @@ |
||
2 | 2 | <html> |
3 | 3 | <head> |
4 | 4 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
5 | - <title><?= wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ); ?></title> |
|
5 | + <title><?= wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); ?></title> |
|
6 | 6 | </head> |
7 | 7 | <body> |
8 | 8 |