2012-09-17 00:53:17 +00:00
< ? php
2013-02-20 17:14:46 +00:00
if ( ! defined ( 'ABSPATH' ) ) exit ; // Exit if accessed directly
2013-08-02 10:17:56 +00:00
if ( ! class_exists ( 'WC_Email_Customer_Completed_Order' ) ) :
2012-09-17 00:53:17 +00:00
/**
* Customer Completed Order Email
*
* Order complete emails are sent to the customer when the order is marked complete and usual indicates that the order has been shipped .
*
* @ class WC_Email_Customer_Completed_Order
2012-12-03 19:19:58 +00:00
* @ version 2.0 . 0
2012-09-17 00:53:17 +00:00
* @ package WooCommerce / Classes / Emails
* @ author WooThemes
* @ extends WC_Email
*/
class WC_Email_Customer_Completed_Order extends WC_Email {
/**
* Constructor
*/
function __construct () {
2012-11-27 16:22:47 +00:00
2012-09-17 00:53:17 +00:00
$this -> id = 'customer_completed_order' ;
$this -> title = __ ( 'Completed order' , 'woocommerce' );
$this -> description = __ ( 'Order complete emails are sent to the customer when the order is marked complete and usual indicates that the order has been shipped.' , 'woocommerce' );
2012-11-27 16:22:47 +00:00
2012-09-17 00:53:17 +00:00
$this -> heading = __ ( 'Your order is complete' , 'woocommerce' );
2013-10-23 14:57:14 +00:00
$this -> subject = __ ( 'Your {site_title} order from {order_date} is complete' , 'woocommerce' );
2012-11-27 16:22:47 +00:00
2012-09-17 00:53:17 +00:00
$this -> template_html = 'emails/customer-completed-order.php' ;
$this -> template_plain = 'emails/plain/customer-completed-order.php' ;
2012-11-27 16:22:47 +00:00
2012-09-17 00:53:17 +00:00
// Triggers for this email
2012-12-15 11:53:32 +00:00
add_action ( 'woocommerce_order_status_completed_notification' , array ( $this , 'trigger' ) );
2012-11-27 16:22:47 +00:00
2012-12-31 12:07:43 +00:00
// Other settings
$this -> heading_downloadable = $this -> get_option ( 'heading_downloadable' , __ ( 'Your order is complete - download your files' , 'woocommerce' ) );
2013-10-23 14:57:14 +00:00
$this -> subject_downloadable = $this -> get_option ( 'subject_downloadable' , __ ( 'Your {site_title} order from {order_date} is complete - download your files' , 'woocommerce' ) );
2013-01-10 15:17:33 +00:00
// Call parent constuctor
parent :: __construct ();
2012-09-17 00:53:17 +00:00
}
/**
* trigger function .
2012-11-27 16:22:47 +00:00
*
2012-09-17 00:53:17 +00:00
* @ access public
* @ return void
*/
function trigger ( $order_id ) {
2012-11-27 16:22:47 +00:00
2012-09-17 00:53:17 +00:00
if ( $order_id ) {
2014-08-15 12:29:21 +00:00
$this -> object = wc_get_order ( $order_id );
2012-09-17 00:53:17 +00:00
$this -> recipient = $this -> object -> billing_email ;
2012-11-27 16:22:47 +00:00
2014-05-30 09:42:47 +00:00
$this -> find [ 'order-date' ] = '{order_date}' ;
$this -> find [ 'order-number' ] = '{order_number}' ;
$this -> replace [ 'order-date' ] = date_i18n ( wc_date_format (), strtotime ( $this -> object -> order_date ) );
$this -> replace [ 'order-number' ] = $this -> object -> get_order_number ();
2012-09-17 00:53:17 +00:00
}
2012-11-27 16:22:47 +00:00
2014-05-30 09:42:47 +00:00
if ( ! $this -> is_enabled () || ! $this -> get_recipient () ) {
2012-09-17 00:53:17 +00:00
return ;
2014-05-30 09:42:47 +00:00
}
2012-11-27 16:22:47 +00:00
2012-09-17 00:53:17 +00:00
$this -> send ( $this -> get_recipient (), $this -> get_subject (), $this -> get_content (), $this -> get_headers (), $this -> get_attachments () );
}
2012-11-27 16:22:47 +00:00
2012-09-17 00:53:17 +00:00
/**
* get_subject function .
2012-11-27 16:22:47 +00:00
*
2012-09-17 00:53:17 +00:00
* @ access public
* @ return string
*/
function get_subject () {
if ( ! empty ( $this -> object ) && $this -> object -> has_downloadable_item () )
return apply_filters ( 'woocommerce_email_subject_customer_completed_order' , $this -> format_string ( $this -> subject_downloadable ), $this -> object );
else
return apply_filters ( 'woocommerce_email_subject_customer_completed_order' , $this -> format_string ( $this -> subject ), $this -> object );
}
/**
* get_heading function .
2012-11-27 16:22:47 +00:00
*
2012-09-17 00:53:17 +00:00
* @ access public
* @ return string
*/
function get_heading () {
if ( ! empty ( $this -> object ) && $this -> object -> has_downloadable_item () )
return apply_filters ( 'woocommerce_email_heading_customer_completed_order' , $this -> format_string ( $this -> heading_downloadable ), $this -> object );
else
return apply_filters ( 'woocommerce_email_heading_customer_completed_order' , $this -> format_string ( $this -> heading ), $this -> object );
}
/**
* get_content_html function .
2012-11-27 16:22:47 +00:00
*
2012-09-17 00:53:17 +00:00
* @ access public
* @ return string
*/
function get_content_html () {
ob_start ();
2013-11-25 12:45:04 +00:00
wc_get_template ( $this -> template_html , array (
2012-09-17 00:53:17 +00:00
'order' => $this -> object ,
2014-01-08 15:04:49 +00:00
'email_heading' => $this -> get_heading (),
'sent_to_admin' => false ,
'plain_text' => false
2012-09-17 00:53:17 +00:00
) );
return ob_get_clean ();
}
2012-11-27 16:22:47 +00:00
2012-09-17 00:53:17 +00:00
/**
* get_content_plain function .
2012-11-27 16:22:47 +00:00
*
2012-09-17 00:53:17 +00:00
* @ access public
* @ return string
*/
function get_content_plain () {
ob_start ();
2013-11-25 12:45:04 +00:00
wc_get_template ( $this -> template_plain , array (
2012-09-17 00:53:17 +00:00
'order' => $this -> object ,
2014-01-08 15:04:49 +00:00
'email_heading' => $this -> get_heading (),
'sent_to_admin' => false ,
'plain_text' => true
2012-09-17 00:53:17 +00:00
) );
return ob_get_clean ();
}
2012-11-27 16:22:47 +00:00
2012-09-17 00:53:17 +00:00
/**
* Initialise Settings Form Fields
*
* @ access public
* @ return void
*/
function init_form_fields () {
$this -> form_fields = array (
'enabled' => array (
'title' => __ ( 'Enable/Disable' , 'woocommerce' ),
'type' => 'checkbox' ,
'label' => __ ( 'Enable this email notification' , 'woocommerce' ),
'default' => 'yes'
),
'subject' => array (
'title' => __ ( 'Subject' , 'woocommerce' ),
'type' => 'text' ,
'description' => sprintf ( __ ( 'Defaults to <code>%s</code>' , 'woocommerce' ), $this -> subject ),
'placeholder' => '' ,
'default' => ''
),
'heading' => array (
'title' => __ ( 'Email Heading' , 'woocommerce' ),
'type' => 'text' ,
'description' => sprintf ( __ ( 'Defaults to <code>%s</code>' , 'woocommerce' ), $this -> heading ),
'placeholder' => '' ,
'default' => ''
),
'subject_downloadable' => array (
'title' => __ ( 'Subject (downloadable)' , 'woocommerce' ),
'type' => 'text' ,
'description' => sprintf ( __ ( 'Defaults to <code>%s</code>' , 'woocommerce' ), $this -> subject_downloadable ),
'placeholder' => '' ,
'default' => ''
),
'heading_downloadable' => array (
'title' => __ ( 'Email Heading (downloadable)' , 'woocommerce' ),
'type' => 'text' ,
'description' => sprintf ( __ ( 'Defaults to <code>%s</code>' , 'woocommerce' ), $this -> heading_downloadable ),
'placeholder' => '' ,
'default' => ''
),
'email_type' => array (
'title' => __ ( 'Email type' , 'woocommerce' ),
'type' => 'select' ,
'description' => __ ( 'Choose which format of email to send.' , 'woocommerce' ),
'default' => 'html' ,
'class' => 'email_type' ,
'options' => array (
'plain' => __ ( 'Plain text' , 'woocommerce' ),
'html' => __ ( 'HTML' , 'woocommerce' ),
'multipart' => __ ( 'Multipart' , 'woocommerce' ),
)
)
);
}
2013-08-02 10:17:56 +00:00
}
endif ;
return new WC_Email_Customer_Completed_Order ();