PluginProbe ʕ •ᴥ•ʔ
WooCommerce Square / 4.8.0
WooCommerce Square v4.8.0
5.5.0 5.4.3 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 2 years ago Async_Request.php 2 years ago Background_Job.php 2 years ago Category.php 2 years ago Connection.php 2 years ago Email.php 2 years ago Order.php 1 year ago Product.php 1 year ago Products.php 1 year ago Sync.php 3 years ago
Email.php
156 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 /** @var Emails\Gift_Card_Sent instance */
43 private $square_gift_card_sent;
44
45 /**
46 * Sets up Square emails.
47 *
48 * @since 1.0.0
49 */
50 public function __construct() {
51 // add email handlers to WooCommerce core
52 add_action( 'woocommerce_loaded', array( $this, 'init_emails' ) );
53 add_filter( 'woocommerce_email_classes', array( $this, 'get_email_classes' ) );
54 }
55
56 /**
57 * Ensures the WooCommerce email handlers are loaded.
58 *
59 * @since 2.0.0
60 */
61 private function init_mailer() {
62 // loads the base WooCommerce Email base class
63 if ( ! class_exists( 'WC_Email' ) ) {
64 WC()->mailer();
65 }
66 }
67
68 /**
69 * Initializes Square email classes.
70 *
71 * @internal
72 *
73 * @since 2.0.0
74 */
75 public function init_emails() {
76 $this->init_mailer();
77
78 if ( null === $this->square_sync_completed ) {
79 $this->square_sync_completed = new Emails\Sync_Completed();
80 }
81
82 if ( null === $this->square_access_token_email ) {
83 $this->square_access_token_email = new Emails\Access_Token_Email();
84 }
85
86 if ( null === $this->square_gift_card_sent ) {
87 $this->square_gift_card_sent = new Emails\Gift_Card_Sent();
88 }
89 }
90
91 /**
92 * Adds WooCommerce Square email handlers.
93 *
94 * @internal
95 *
96 * @since 2.0.0
97 *
98 * @param \WC_Email[] $emails associative array of email IDs and objects
99 * @return \WC_Email[]
100 */
101 public function get_email_classes( $emails = array() ) {
102 // init emails if uninitialized
103 $this->init_emails();
104
105 if ( ! array_key_exists( 'wc_square_sync_completed', $emails ) || ! $emails['wc_square_sync_completed'] instanceof Emails\Sync_Completed ) {
106 $emails['wc_square_sync_completed'] = $this->square_sync_completed;
107 }
108
109 if ( ! array_key_exists( 'wc_square_access_token_email', $emails ) || ! $emails['wc_square_access_token_email'] instanceof Emails\Sync_Completed ) {
110 $emails['wc_square_access_token_email'] = $this->square_access_token_email;
111 }
112
113 if ( ! array_key_exists( 'wc_square_gift_card_sent', $emails ) || ! $emails['wc_square_gift_card_sent'] instanceof Emails\Sync_Completed ) {
114 $emails['wc_square_gift_card_sent'] = $this->square_gift_card_sent;
115 }
116
117 return $emails;
118 }
119
120 /**
121 * Gets the Square sync completed email instance.
122 *
123 * @since 2.0.0
124 *
125 * @return Emails\Sync_Completed
126 */
127 public function get_sync_completed_email() {
128 $this->init_emails();
129 return $this->square_sync_completed;
130 }
131
132 /**
133 * Gets the Square access token email instance.
134 *
135 * @since 2.1.0
136 *
137 * @return Emails\Access_Token_Email
138 */
139 public function get_access_token_email() {
140 $this->init_emails();
141 return $this->square_access_token_email;
142 }
143
144 /**
145 * Gets the Square Gift Card email sent instance.
146 *
147 * @since 4.2.0
148 *
149 * @return Emails\Gift_Card_Sent
150 */
151 public function get_gift_card_sent() {
152 $this->init_emails();
153 return $this->square_gift_card_sent;
154 }
155 }
156