PluginProbe ʕ •ᴥ•ʔ
WooCommerce Square / 2.2.5
WooCommerce Square v2.2.5
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 6 years ago Background_Job.php 6 years ago Category.php 6 years ago Connection.php 6 years ago Email.php 6 years ago Order.php 6 years ago Product.php 5 years ago Products.php 5 years ago Sync.php 5 years ago
Email.php
134 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
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
22 */
23
24 namespace WooCommerce\Square\Handlers;
25
26 use SkyVerge\WooCommerce\PluginFramework\v5_4_0 as Framework;
27 use WooCommerce\Square\Emails;
28
29 defined( 'ABSPATH' ) || exit;
30
31 /**
32 * Emails handler class.
33 *
34 * @since 2.0.0
35 */
36 class Email {
37 /** @var Emails\Sync_Completed instance */
38 private $square_sync_completed;
39
40 /** @var Emails\Access_Token_Email instance */
41 private $square_access_token_email;
42
43 /**
44 * Sets up Square emails.
45 *
46 * @since 1.0.0
47 */
48 public function __construct() {
49 // add email handlers to WooCommerce core
50 add_action( 'woocommerce_loaded', array( $this, 'init_emails' ) );
51 add_filter( 'woocommerce_email_classes', array( $this, 'get_email_classes' ) );
52 }
53
54 /**
55 * Ensures the WooCommerce email handlers are loaded.
56 *
57 * @since 2.0.0
58 */
59 private function init_mailer() {
60 // loads the base WooCommerce Email base class
61 if ( ! class_exists( 'WC_Email' ) ) {
62 WC()->mailer();
63 }
64 }
65
66 /**
67 * Initializes Square email classes.
68 *
69 * @internal
70 *
71 * @since 2.0.0
72 */
73 public function init_emails() {
74 $this->init_mailer();
75
76 if ( null === $this->square_sync_completed ) {
77 $this->square_sync_completed = new Emails\Sync_Completed();
78 }
79
80 if ( null === $this->square_access_token_email ) {
81 $this->square_access_token_email = new Emails\Access_Token_Email();
82 }
83 }
84
85 /**
86 * Adds WooCommerce Square email handlers.
87 *
88 * @internal
89 *
90 * @since 2.0.0
91 *
92 * @param \WC_Email[] $emails associative array of email IDs and objects
93 * @return \WC_Email[]
94 */
95 public function get_email_classes( $emails = array() ) {
96 // init emails if uninitialized
97 $this->init_emails();
98
99 if ( ! array_key_exists( 'wc_square_sync_completed', $emails ) || ! $emails['wc_square_sync_completed'] instanceof Emails\Sync_Completed ) {
100 $emails['wc_square_sync_completed'] = $this->square_sync_completed;
101 }
102
103 if ( ! array_key_exists( 'wc_square_access_token_email', $emails ) || ! $emails['wc_square_access_token_email'] instanceof Emails\Sync_Completed ) {
104 $emails['wc_square_access_token_email'] = $this->square_access_token_email;
105 }
106
107 return $emails;
108 }
109
110 /**
111 * Gets the Square sync completed email instance.
112 *
113 * @since 2.0.0
114 *
115 * @return Emails\Sync_Completed
116 */
117 public function get_sync_completed_email() {
118 $this->init_emails();
119 return $this->square_sync_completed;
120 }
121
122 /**
123 * Gets the Square access token email instance.
124 *
125 * @since 2.1.0
126 *
127 * @return Emails\Access_Token_Email
128 */
129 public function get_access_token_email() {
130 $this->init_emails();
131 return $this->square_access_token_email;
132 }
133 }
134