1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
if ( ! defined( 'ABSPATH' ) ) { |
4
|
|
|
exit; // Exit if accessed directly |
5
|
|
|
} |
6
|
|
|
|
7
|
|
|
if ( ! class_exists( 'WC_Email_Customer_Note' ) ) : |
8
|
|
|
|
9
|
|
|
/** |
10
|
|
|
* Customer Note Order Email. |
11
|
|
|
* |
12
|
|
|
* Customer note emails are sent when you add a note to an order. |
13
|
|
|
* |
14
|
|
|
* @class WC_Email_Customer_Note |
15
|
|
|
* @version 2.3.0 |
16
|
|
|
* @package WooCommerce/Classes/Emails |
17
|
|
|
* @author WooThemes |
18
|
|
|
* @extends WC_Email |
19
|
|
|
*/ |
20
|
|
|
class WC_Email_Customer_Note extends WC_Email { |
21
|
|
|
|
22
|
|
|
/** |
23
|
|
|
* Customer note. |
24
|
|
|
* |
25
|
|
|
* @var string |
26
|
|
|
*/ |
27
|
|
|
public $customer_note; |
28
|
|
|
|
29
|
|
|
/** |
30
|
|
|
* Constructor. |
31
|
|
|
*/ |
32
|
|
|
public function __construct() { |
33
|
|
|
|
34
|
|
|
$this->id = 'customer_note'; |
35
|
|
|
$this->customer_email = true; |
36
|
|
|
$this->title = __( 'Customer note', 'woocommerce' ); |
37
|
|
|
$this->description = __( 'Customer note emails are sent when you add a note to an order.', 'woocommerce' ); |
38
|
|
|
|
39
|
|
|
$this->template_html = 'emails/customer-note.php'; |
40
|
|
|
$this->template_plain = 'emails/plain/customer-note.php'; |
41
|
|
|
|
42
|
|
|
$this->subject = __( 'Note added to your {site_title} order from {order_date}', 'woocommerce'); |
43
|
|
|
$this->heading = __( 'A note has been added to your order', 'woocommerce'); |
44
|
|
|
|
45
|
|
|
// Triggers |
46
|
|
|
add_action( 'woocommerce_new_customer_note_notification', array( $this, 'trigger' ) ); |
47
|
|
|
|
48
|
|
|
// Call parent constructor |
49
|
|
|
parent::__construct(); |
50
|
|
|
} |
51
|
|
|
|
52
|
|
|
/** |
53
|
|
|
* Trigger. |
54
|
|
|
* |
55
|
|
|
* @param array $args |
56
|
|
|
*/ |
57
|
|
|
public function trigger( $args ) { |
58
|
|
|
|
59
|
|
|
if ( $args ) { |
|
|
|
|
60
|
|
|
|
61
|
|
|
$defaults = array( |
62
|
|
|
'order_id' => '', |
63
|
|
|
'customer_note' => '' |
64
|
|
|
); |
65
|
|
|
|
66
|
|
|
$args = wp_parse_args( $args, $defaults ); |
67
|
|
|
|
68
|
|
|
extract( $args ); |
69
|
|
|
|
70
|
|
|
if ( $order_id && ( $this->object = wc_get_order( $order_id ) ) ) { |
|
|
|
|
71
|
|
|
$this->recipient = $this->object->billing_email; |
72
|
|
|
$this->customer_note = $customer_note; |
73
|
|
|
|
74
|
|
|
$this->find['order-date'] = '{order_date}'; |
75
|
|
|
$this->find['order-number'] = '{order_number}'; |
76
|
|
|
|
77
|
|
|
$this->replace['order-date'] = date_i18n( wc_date_format(), strtotime( $this->object->order_date ) ); |
78
|
|
|
$this->replace['order-number'] = $this->object->get_order_number(); |
79
|
|
|
} else { |
80
|
|
|
return; |
81
|
|
|
} |
82
|
|
|
} |
83
|
|
|
|
84
|
|
|
if ( ! $this->is_enabled() || ! $this->get_recipient() ) { |
85
|
|
|
return; |
86
|
|
|
} |
87
|
|
|
|
88
|
|
|
$this->send( $this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() ); |
89
|
|
|
} |
90
|
|
|
|
91
|
|
|
/** |
92
|
|
|
* Get content html. |
93
|
|
|
* |
94
|
|
|
* @access public |
95
|
|
|
* @return string |
96
|
|
|
*/ |
97
|
|
|
public function get_content_html() { |
98
|
|
|
return wc_get_template_html( $this->template_html, array( |
99
|
|
|
'order' => $this->object, |
100
|
|
|
'email_heading' => $this->get_heading(), |
101
|
|
|
'customer_note' => $this->customer_note, |
102
|
|
|
'sent_to_admin' => false, |
103
|
|
|
'plain_text' => false, |
104
|
|
|
'email' => $this |
105
|
|
|
) ); |
106
|
|
|
} |
107
|
|
|
|
108
|
|
|
/** |
109
|
|
|
* Get content plain. |
110
|
|
|
* |
111
|
|
|
* @access public |
112
|
|
|
* @return string |
113
|
|
|
*/ |
114
|
|
|
public function get_content_plain() { |
115
|
|
|
return wc_get_template_html( $this->template_plain, array( |
116
|
|
|
'order' => $this->object, |
117
|
|
|
'email_heading' => $this->get_heading(), |
118
|
|
|
'customer_note' => $this->customer_note, |
119
|
|
|
'sent_to_admin' => false, |
120
|
|
|
'plain_text' => true, |
121
|
|
|
'email' => $this |
122
|
|
|
) ); |
123
|
|
|
} |
124
|
|
|
} |
125
|
|
|
|
126
|
|
|
endif; |
127
|
|
|
|
128
|
|
|
return new WC_Email_Customer_Note(); |
129
|
|
|
|
This check marks implicit conversions of arrays to boolean values in a comparison. While in PHP an empty array is considered to be equal (but not identical) to false, this is not always apparent.
Consider making the comparison explicit by using
empty(..)
or! empty(...)
instead.