2014-10-29 14:05:43 +00:00
< ? php
if ( ! defined ( 'ABSPATH' ) ) {
2015-11-02 14:45:24 +00:00
exit ;
2014-10-29 14:05:43 +00:00
}
if ( ! class_exists ( 'WC_Email_Cancelled_Order' ) ) :
/**
2015-11-03 13:31:20 +00:00
* Cancelled Order Email .
2014-10-29 14:05:43 +00:00
*
2014-11-25 16:23:00 +00:00
* An email sent to the admin when an order is cancelled .
2014-10-29 14:05:43 +00:00
*
* @ class WC_Email_Cancelled_Order
* @ version 2.2 . 7
* @ package WooCommerce / Classes / Emails
* @ author WooThemes
* @ extends WC_Email
*/
class WC_Email_Cancelled_Order extends WC_Email {
2015-02-13 14:16:58 +00:00
/**
2015-11-03 13:31:20 +00:00
* Constructor .
2015-02-13 14:16:58 +00:00
*/
2015-11-02 14:45:24 +00:00
public function __construct () {
2015-02-13 14:16:58 +00:00
$this -> id = 'cancelled_order' ;
$this -> title = __ ( 'Cancelled order' , 'woocommerce' );
2015-11-03 15:04:29 +00:00
$this -> description = __ ( 'Cancelled order emails are sent to chosen recipient(s) when orders have been marked cancelled (if they were previously processing or on-hold).' , 'woocommerce' );
2015-02-13 14:16:58 +00:00
$this -> heading = __ ( 'Cancelled order' , 'woocommerce' );
$this -> subject = __ ( '[{site_title}] Cancelled order ({order_number})' , 'woocommerce' );
$this -> template_html = 'emails/admin-cancelled-order.php' ;
$this -> template_plain = 'emails/plain/admin-cancelled-order.php' ;
// Triggers for this email
add_action ( 'woocommerce_order_status_pending_to_cancelled_notification' , array ( $this , 'trigger' ) );
add_action ( 'woocommerce_order_status_on-hold_to_cancelled_notification' , array ( $this , 'trigger' ) );
// Call parent constructor
parent :: __construct ();
// Other settings
2015-11-02 14:45:24 +00:00
$this -> recipient = $this -> get_option ( 'recipient' , get_option ( 'admin_email' ) );
2015-02-13 14:16:58 +00:00
}
/**
2015-07-16 19:55:48 +00:00
* Trigger .
2016-01-05 18:16:21 +00:00
*
* @ param int $order_id
2015-02-13 14:16:58 +00:00
*/
2015-11-02 14:45:24 +00:00
public function trigger ( $order_id ) {
2015-02-13 14:16:58 +00:00
if ( $order_id ) {
2015-11-02 14:45:24 +00:00
$this -> object = wc_get_order ( $order_id );
$this -> find [ 'order-date' ] = '{order_date}' ;
2015-02-13 14:16:58 +00:00
$this -> find [ 'order-number' ] = '{order_number}' ;
2016-08-08 15:34:01 +00:00
$this -> replace [ 'order-date' ] = date_i18n ( wc_date_format (), $this -> object -> get_date_created () );
2015-02-13 14:16:58 +00:00
$this -> replace [ 'order-number' ] = $this -> object -> get_order_number ();
}
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 () );
}
/**
2016-01-05 18:16:21 +00:00
* Get content html .
2015-02-13 14:16:58 +00:00
*
* @ access public
* @ return string
*/
2015-11-02 14:45:24 +00:00
public function get_content_html () {
2015-12-04 13:39:57 +00:00
return wc_get_template_html ( $this -> template_html , array (
2015-02-13 14:16:58 +00:00
'order' => $this -> object ,
'email_heading' => $this -> get_heading (),
'sent_to_admin' => true ,
2015-11-01 04:04:59 +00:00
'plain_text' => false ,
2016-08-27 01:46:45 +00:00
'email' => $this ,
2015-02-13 14:16:58 +00:00
) );
}
/**
2015-07-16 19:55:48 +00:00
* Get content plain .
2015-02-13 14:16:58 +00:00
*
* @ return string
*/
2015-11-02 14:45:24 +00:00
public function get_content_plain () {
2015-12-04 13:39:57 +00:00
return wc_get_template_html ( $this -> template_plain , array (
2015-02-13 14:16:58 +00:00
'order' => $this -> object ,
'email_heading' => $this -> get_heading (),
'sent_to_admin' => true ,
2015-11-30 15:16:23 +00:00
'plain_text' => true ,
2016-08-27 01:46:45 +00:00
'email' => $this ,
2015-02-13 14:16:58 +00:00
) );
}
/**
2015-07-16 19:55:48 +00:00
* Initialise settings form fields .
2015-02-13 14:16:58 +00:00
*/
2015-11-02 14:45:24 +00:00
public function init_form_fields () {
2015-02-13 14:16:58 +00:00
$this -> form_fields = array (
'enabled' => array (
'title' => __ ( 'Enable/Disable' , 'woocommerce' ),
'type' => 'checkbox' ,
'label' => __ ( 'Enable this email notification' , 'woocommerce' ),
2016-08-27 01:46:45 +00:00
'default' => 'yes' ,
2015-02-13 14:16:58 +00:00
),
'recipient' => array (
'title' => __ ( 'Recipient(s)' , 'woocommerce' ),
'type' => 'text' ,
2016-09-02 01:33:57 +00:00
'description' => sprintf ( __ ( 'Enter recipients (comma separated) for this email. Defaults to <code>%s</code>.' , 'woocommerce' ), esc_attr ( get_option ( 'admin_email' ) ) ),
2015-02-13 14:16:58 +00:00
'placeholder' => '' ,
2015-11-03 14:59:48 +00:00
'default' => '' ,
2016-08-27 01:46:45 +00:00
'desc_tip' => true ,
2015-02-13 14:16:58 +00:00
),
'subject' => array (
'title' => __ ( 'Subject' , 'woocommerce' ),
'type' => 'text' ,
'description' => sprintf ( __ ( 'This controls the email subject line. Leave blank to use the default subject: <code>%s</code>.' , 'woocommerce' ), $this -> subject ),
'placeholder' => '' ,
2015-11-03 14:59:48 +00:00
'default' => '' ,
2016-08-27 01:46:45 +00:00
'desc_tip' => true ,
2015-02-13 14:16:58 +00:00
),
'heading' => array (
'title' => __ ( 'Email Heading' , 'woocommerce' ),
'type' => 'text' ,
'description' => sprintf ( __ ( 'This controls the main heading contained within the email notification. Leave blank to use the default heading: <code>%s</code>.' , 'woocommerce' ), $this -> heading ),
'placeholder' => '' ,
2015-11-03 14:59:48 +00:00
'default' => '' ,
2016-08-27 01:46:45 +00:00
'desc_tip' => true ,
2015-02-13 14:16:58 +00:00
),
'email_type' => array (
'title' => __ ( 'Email type' , 'woocommerce' ),
'type' => 'select' ,
'description' => __ ( 'Choose which format of email to send.' , 'woocommerce' ),
'default' => 'html' ,
'class' => 'email_type wc-enhanced-select' ,
2015-11-03 14:59:48 +00:00
'options' => $this -> get_email_type_options (),
2016-08-27 01:46:45 +00:00
'desc_tip' => true ,
),
2015-02-13 14:16:58 +00:00
);
}
2014-10-29 14:05:43 +00:00
}
endif ;
return new WC_Email_Cancelled_Order ();