PluginProbe
YayMail – WooCommerce Email Customizer / 4.3.2
YayMail – WooCommerce Email Customizer v4.3.2
4.4.4 4.4.3 4.4.2 4.4.1 trunk 1.9.6 2.1.4 2.1.5 3.2.2 3.2.6 3.2.7.1 3.2.8.1 3.2.9 3.3 3.3.1 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4 3.4.1 3.4.2 3.4.3 All 55 releases
yaymail / src / Emails / EmailsLoader.php

EmailsLoader.php in YayMail – WooCommerce Email Customizer 4.3.2, at src/Emails/EmailsLoader.php

88 lines 3.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace YayMail\Emails;
4
5 use YayMail\Utils\SingletonTrait;
6 use YayMail\YayMailEmails;
7
8 /**
9 * EmailsLoader Class
10 *
11 * @method static EmailsLoader get_instance()
12 */
13 class EmailsLoader {
14
15 use SingletonTrait;
16
17 private function __construct() {
18 $this->init_hooks();
19 $this->load_emails();
20 }
21
22 private function init_hooks() {
23 add_action( 'yaymail_before_email_content', [ $this, 'before_email_content' ], 10, 1 );
24 add_action( 'yaymail_after_email_content', [ $this, 'after_email_content' ], 10, 1 );
25
26 /**
27 * Email references hooks
28 */
29 add_filter( 'safe_style_css', [ $this, 'filter_safe_style_css' ], 10, 1 );
30 add_filter( 'woocommerce_email_styles', [ $this, 'inject_custom_css' ] );
31 }
32
33 private function load_emails() {
34
35 $yaymail_emails = YayMailEmails::get_instance();
36
37 $yaymail_emails->register( \YayMail\Emails\NewOrder::get_instance() );
38 $yaymail_emails->register( \YayMail\Emails\CancelledOrder::get_instance() );
39 $yaymail_emails->register( \YayMail\Emails\CustomerCancelledOrder::get_instance() );
40 $yaymail_emails->register( \YayMail\Emails\FailedOrder::get_instance() );
41 $yaymail_emails->register( \YayMail\Emails\CustomerFailedOrder::get_instance() );
42 $yaymail_emails->register( \YayMail\Emails\CustomerOnHoldOrder::get_instance() );
43 $yaymail_emails->register( \YayMail\Emails\CustomerProcessingOrder::get_instance() );
44 $yaymail_emails->register( \YayMail\Emails\CustomerCompletedOrder::get_instance() );
45 $yaymail_emails->register( \YayMail\Emails\CustomerRefundedOrder::get_instance() );
46 $yaymail_emails->register( \YayMail\Emails\CustomerInvoice::get_instance() );
47 $yaymail_emails->register( \YayMail\Emails\CustomerNote::get_instance() );
48 $yaymail_emails->register( \YayMail\Emails\CustomerResetPassword::get_instance() );
49 $yaymail_emails->register( \YayMail\Emails\CustomerNewAccount::get_instance() );
50 $yaymail_emails->register( \YayMail\Emails\GlobalHeaderFooter::get_instance() );
51
52 /**
53 * POS emails, WC 9.9.3
54 *
55 * @since 4.0.6
56 */
57 $yaymail_emails->register( \YayMail\Emails\CustomerPOSCompletedOrder::get_instance() );
58 $yaymail_emails->register( \YayMail\Emails\CustomerPOSRefundedOrder::get_instance() );
59
60 do_action( 'yaymail_register_emails', $yaymail_emails );
61 }
62
63 public function before_email_content( $template ) {
64 include YAYMAIL_PLUGIN_PATH . 'templates/emails/before-email-content.php';
65 }
66
67 public function after_email_content( $template ) {
68 include YAYMAIL_PLUGIN_PATH . 'templates/emails/after-email-content.php';
69 }
70
71 public function filter_safe_style_css( $default_array ) {
72 $additional_allowed_css_attributes = [ 'display', 'background-repeat', 'word-wrap' ];
73 return array_merge( $default_array, $additional_allowed_css_attributes );
74 }
75
76 public function inject_custom_css( $css = '' ) {
77 $css .= '.yaymail-element table { border-spacing: 0; }';
78 $yaymail_settings = yaymail_settings();
79 if ( ! boolval( $yaymail_settings['enable_custom_css'] ?? false ) ) {
80 return $css;
81 }
82 $custom_css = isset( $yaymail_settings['custom_css'] ) ? $yaymail_settings['custom_css'] : '';
83 $css .= $custom_css;
84 $css = apply_filters( 'yaymail_email_styles', $css );
85 return $css;
86 }
87 }
88