PluginProbe ʕ •ᴥ•ʔ
WooCommerce Square / 3.8.1
WooCommerce Square v3.8.1
5.4.2 5.4.1 5.4.0 trunk 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 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.6.0 2.7.0 2.8.0 2.9.0 2.9.1 3.0.0 3.0.1 3.0.2 3.0.3 3.1.0 3.2.0 3.3.0 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.7.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 4.0.0 4.1.0 4.2.0 4.2.1 4.2.2 4.2.3 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.4.2 4.5.0 4.5.1 4.5.2 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.8.0 4.8.1 4.8.2 4.8.3 4.8.4 4.8.5 4.8.6 4.8.7 4.8.8 4.9.0 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 4.9.6 4.9.7 4.9.8 4.9.9 5.0.0 5.0.1 5.1.0 5.1.1 5.1.2 5.2.0 5.3.0 5.3.1 5.3.2 5.3.3
woocommerce-square / includes / Handlers / Email.php
woocommerce-square / includes / Handlers Last commit date
Product 3 years ago Background_Job.php 3 years ago Category.php 3 years ago Connection.php 3 years ago Email.php 3 years ago Order.php 3 years ago Product.php 3 years ago Products.php 3 years ago Sync.php 3 years ago
Email.php
133 lines
1 <?php
2 /**
3 * WooCommerce Square
4 *
5 * This source file is subject to the GNU General Public License v3.0
6 * that is bundled with this package in the file license.txt.
7 * It is also available through the world-wide-web at this URL:
8 * http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 or later
9 * If you did not receive a copy of the license and are unable to
10 * obtain it through the world-wide-web, please send an email
11 * to license@woocommerce.com so we can send you a copy immediately.
12 *
13 * DISCLAIMER
14 *
15 * Do not edit or add to this file if you wish to upgrade WooCommerce Square to newer
16 * versions in the future. If you wish to customize WooCommerce Square for your
17 * needs please refer to https://docs.woocommerce.com/document/woocommerce-square/
18 *
19 * @author WooCommerce
20 * @copyright Copyright: (c) 2019, Automattic, Inc.
21 * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 or later
22 */
23
24 namespace WooCommerce\Square\Handlers;
25
26 use WooCommerce\Square\Emails;
27
28 defined( 'ABSPATH' ) || exit;
29
30 /**
31 * Emails handler class.
32 *
33 * @since 2.0.0
34 */
35 class Email {
36 /** @var Emails\Sync_Completed instance */
37 private $square_sync_completed;
38
39 /** @var Emails\Access_Token_Email instance */
40 private $square_access_token_email;
41
42 /**
43 * Sets up Square emails.
44 *
45 * @since 1.0.0
46 */
47 public function __construct() {
48 // add email handlers to WooCommerce core
49 add_action( 'woocommerce_loaded', array( $this, 'init_emails' ) );
50 add_filter( 'woocommerce_email_classes', array( $this, 'get_email_classes' ) );
51 }
52
53 /**
54 * Ensures the WooCommerce email handlers are loaded.
55 *
56 * @since 2.0.0
57 */
58 private function init_mailer() {
59 // loads the base WooCommerce Email base class
60 if ( ! class_exists( 'WC_Email' ) ) {
61 WC()->mailer();
62 }
63 }
64
65 /**
66 * Initializes Square email classes.
67 *
68 * @internal
69 *
70 * @since 2.0.0
71 */
72 public function init_emails() {
73 $this->init_mailer();
74
75 if ( null === $this->square_sync_completed ) {
76 $this->square_sync_completed = new Emails\Sync_Completed();
77 }
78
79 if ( null === $this->square_access_token_email ) {
80 $this->square_access_token_email = new Emails\Access_Token_Email();
81 }
82 }
83
84 /**
85 * Adds WooCommerce Square email handlers.
86 *
87 * @internal
88 *
89 * @since 2.0.0
90 *
91 * @param \WC_Email[] $emails associative array of email IDs and objects
92 * @return \WC_Email[]
93 */
94 public function get_email_classes( $emails = array() ) {
95 // init emails if uninitialized
96 $this->init_emails();
97
98 if ( ! array_key_exists( 'wc_square_sync_completed', $emails ) || ! $emails['wc_square_sync_completed'] instanceof Emails\Sync_Completed ) {
99 $emails['wc_square_sync_completed'] = $this->square_sync_completed;
100 }
101
102 if ( ! array_key_exists( 'wc_square_access_token_email', $emails ) || ! $emails['wc_square_access_token_email'] instanceof Emails\Sync_Completed ) {
103 $emails['wc_square_access_token_email'] = $this->square_access_token_email;
104 }
105
106 return $emails;
107 }
108
109 /**
110 * Gets the Square sync completed email instance.
111 *
112 * @since 2.0.0
113 *
114 * @return Emails\Sync_Completed
115 */
116 public function get_sync_completed_email() {
117 $this->init_emails();
118 return $this->square_sync_completed;
119 }
120
121 /**
122 * Gets the Square access token email instance.
123 *
124 * @since 2.1.0
125 *
126 * @return Emails\Access_Token_Email
127 */
128 public function get_access_token_email() {
129 $this->init_emails();
130 return $this->square_access_token_email;
131 }
132 }
133