PluginProbe ʕ •ᴥ•ʔ
WooCommerce Square / 5.4.2
WooCommerce Square v5.4.2
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 1 month ago Async_Request.php 2 years ago Background_Job.php 2 months ago Category.php 1 month ago Connection.php 4 months ago Email.php 1 year ago Order.php 1 day ago Order_Sync.php 10 months ago Product.php 1 month ago Products.php 1 day ago Sync.php 3 years ago
Email.php
159 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 WC_Square_Sync_Completed instance */
37 private $square_sync_completed;
38
39 /** @var WC_Square_Access_Token_Email instance */
40 private $square_access_token_email;
41
42 /** @var WC_Square_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 require_once WC_SQUARE_PLUGIN_PATH . 'includes/Emails/WC_Square_Sync_Completed.php';
80 $this->square_sync_completed = new \WC_Square_Sync_Completed();
81 }
82
83 if ( null === $this->square_access_token_email ) {
84 require_once WC_SQUARE_PLUGIN_PATH . 'includes/Emails/WC_Square_Access_Token_Email.php';
85 $this->square_access_token_email = new \WC_Square_Access_Token_Email();
86 }
87
88 if ( null === $this->square_gift_card_sent ) {
89 require_once WC_SQUARE_PLUGIN_PATH . 'includes/Emails/WC_Square_Gift_Card_Sent.php';
90 $this->square_gift_card_sent = new \WC_Square_Gift_Card_Sent();
91 }
92 }
93
94 /**
95 * Adds WooCommerce Square email handlers.
96 *
97 * @internal
98 *
99 * @since 2.0.0
100 *
101 * @param \WC_Email[] $emails associative array of email IDs and objects
102 * @return \WC_Email[]
103 */
104 public function get_email_classes( $emails = array() ) {
105 // init emails if uninitialized
106 $this->init_emails();
107
108 if ( ! array_key_exists( 'Sync_Completed', $emails ) ) {
109 $emails['WC_Square_Sync_Completed'] = $this->square_sync_completed;
110 }
111
112 if ( ! array_key_exists( 'Access_Token_Email', $emails ) ) {
113 $emails['WC_Square_Access_Token_Email'] = $this->square_access_token_email;
114 }
115
116 if ( ! array_key_exists( 'WC_Square_Gift_Card_Sent', $emails ) ) {
117 $emails['WC_Square_Gift_Card_Sent'] = $this->square_gift_card_sent;
118 }
119
120 return $emails;
121 }
122
123 /**
124 * Gets the Square sync completed email instance.
125 *
126 * @since 2.0.0
127 *
128 * @return WC_Square_Sync_Completed
129 */
130 public function get_sync_completed_email() {
131 $this->init_emails();
132 return $this->square_sync_completed;
133 }
134
135 /**
136 * Gets the Square access token email instance.
137 *
138 * @since 2.1.0
139 *
140 * @return WC_Square_Access_Token_Email
141 */
142 public function get_access_token_email() {
143 $this->init_emails();
144 return $this->square_access_token_email;
145 }
146
147 /**
148 * Gets the Square Gift Card email sent instance.
149 *
150 * @since 4.2.0
151 *
152 * @return WC_Square_Gift_Card_Sent
153 */
154 public function get_gift_card_sent() {
155 $this->init_emails();
156 return $this->square_gift_card_sent;
157 }
158 }
159