class-wcs-email-customer-completed-switch-order.php
4.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
/**
* Customer Completed Switch Order Email
*
* Order switch email sent to customer when a subscription is switched successfully.
*
* @class WCS_Email_Completed_Switch_Order
* @version 2.0.0
* @package WooCommerce/Classes/Emails
* @author WooThemes
* @extends WC_Email
*/
class WCS_Email_Completed_Switch_Order extends WC_Email_Customer_Completed_Order {
/**
* Constructor
*/
function __construct() {
// Call override values
$this->id = 'customer_completed_switch_order';
$this->title = __( 'Subscription Switch Complete', 'woocommerce-subscriptions' );
$this->description = __( 'Subscription switch complete emails are sent to the customer when a subscription is switched successfully.', 'woocommerce-subscriptions' );
$this->customer_email = true;
$this->heading = __( 'Your subscription change is complete', 'woocommerce-subscriptions' );
$this->subject = __( 'Your {blogname} subscription change from {order_date} is complete', 'woocommerce-subscriptions' );
$this->template_html = 'emails/customer-completed-switch-order.php';
$this->template_plain = 'emails/plain/customer-completed-switch-order.php';
$this->template_base = plugin_dir_path( WC_Subscriptions::$plugin_file ) . 'templates/';
// Other settings
$this->heading_downloadable = $this->get_option( 'heading_downloadable', __( 'Your subscription change is complete - download your files', 'woocommerce-subscriptions' ) );
$this->subject_downloadable = $this->get_option( 'subject_downloadable', __( 'Your {blogname} subscription change from {order_date} is complete - download your files', 'woocommerce-subscriptions' ) );
// Triggers for this email
add_action( 'woocommerce_order_status_completed_switch_notification', array( $this, 'trigger' ) );
// We want most of the parent's methods, with none of its properties, so call its parent's constructor
WC_Email::__construct();
}
/**
* trigger function.
*
* We need to override WC_Email_Customer_Completed_Order's trigger method because it expects to be run only once
* per request (but multiple subscription switch orders can be generated per request).
*
* @access public
* @return void
*/
function trigger( $order_id ) {
if ( $order_id ) {
$this->object = new WC_Order( $order_id );
$this->recipient = $this->object->billing_email;
$order_date_index = array_search( '{order_date}', $this->find );
if ( false === $order_date_index ) {
$this->find[] = '{order_date}';
$this->replace[] = date_i18n( wc_date_format(), strtotime( $this->object->order_date ) );
} else {
$this->replace[ $order_date_index ] = date_i18n( wc_date_format(), strtotime( $this->object->order_date ) );
}
$order_number_index = array_search( '{order_number}', $this->find );
if ( false === $order_number_index ) {
$this->find[] = '{order_number}';
$this->replace[] = $this->object->get_order_number();
} else {
$this->replace[ $order_number_index ] = $this->object->get_order_number();
}
$this->subscriptions = wcs_get_subscriptions_for_switch_order( $this->object );
}
if ( ! $this->is_enabled() || ! $this->get_recipient() ) {
return;
}
$this->send( $this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() );
}
/**
* get_subject function.
*
* @access public
* @return string
*/
function get_subject() {
return apply_filters( 'woocommerce_subscriptions_email_subject_customer_completed_switch_order', parent::get_subject(), $this->object );
}
/**
* get_heading function.
*
* @access public
* @return string
*/
function get_heading() {
return apply_filters( 'woocommerce_email_heading_customer_switch_order', parent::get_heading(), $this->object );
}
/**
* get_content_html function.
*
* @access public
* @return string
*/
function get_content_html() {
ob_start();
wc_get_template(
$this->template_html,
array(
'order' => $this->object,
'subscriptions' => $this->subscriptions,
'email_heading' => $this->get_heading(),
),
'',
$this->template_base
);
return ob_get_clean();
}
/**
* get_content_plain function.
*
* @access public
* @return string
*/
function get_content_plain() {
ob_start();
wc_get_template(
$this->template_plain,
array(
'order' => $this->object,
'subscriptions' => $this->subscriptions,
'email_heading' => $this->get_heading(),
),
'',
$this->template_base
);
return ob_get_clean();
}
}