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