2012-09-17 00:53:17 +00:00
< ? php
/**
* New Order Email
*
* An email sent to the admin when a new order is received / paid for .
*
* @ class WC_Email_New_Order
* @ version 1.7 . 0
* @ package WooCommerce / Classes / Emails
* @ author WooThemes
* @ extends WC_Email
*/
2012-10-15 10:57:58 +00:00
if ( ! defined ( 'ABSPATH' ) ) exit ; // Exit if accessed directly
2012-09-17 00:53:17 +00:00
class WC_Email_New_Order extends WC_Email {
/**
* Constructor
*/
function __construct () {
$this -> id = 'new_order' ;
$this -> title = __ ( 'New order' , 'woocommerce' );
$this -> description = __ ( 'New order emails are sent when an order is received/paid by a customer.' , 'woocommerce' );
$this -> heading = __ ( 'New customer order' , 'woocommerce' );
$this -> subject = __ ( '[{blogname}] New customer order ({order_number}) - {order_date}' , 'woocommerce' );
$this -> template_html = 'emails/admin-new-order.php' ;
$this -> template_plain = 'emails/plain/admin-new-order.php' ;
// Triggers for this email
add_action ( 'woocommerce_order_status_pending_to_processing_notification' , array ( & $this , 'trigger' ) );
add_action ( 'woocommerce_order_status_pending_to_completed_notification' , array ( & $this , 'trigger' ) );
add_action ( 'woocommerce_order_status_pending_to_on-hold_notification' , array ( & $this , 'trigger' ) );
add_action ( 'woocommerce_order_status_failed_to_processing_notification' , array ( & $this , 'trigger' ) );
add_action ( 'woocommerce_order_status_failed_to_completed_notification' , array ( & $this , 'trigger' ) );
// Call parent constuctor
parent :: __construct ();
// Other settings
$this -> recipient = $this -> settings [ 'recipient' ];
2012-11-14 17:44:58 +00:00
if ( ! $this -> recipient )
$this -> recipient = get_option ( 'admin_email' );
2012-09-17 00:53:17 +00:00
}
/**
* trigger function .
*
* @ access public
* @ return void
*/
function trigger ( $order_id ) {
global $woocommerce ;
if ( $order_id ) {
$this -> object = new WC_Order ( $order_id );
$this -> find [] = '{order_date}' ;
2012-11-21 11:16:17 +00:00
$this -> replace [] = date_i18n ( __ ( get_option ( 'date_format' ), 'woocommerce' ), strtotime ( $this -> object -> order_date ) );
2012-09-17 00:53:17 +00:00
$this -> find [] = '{order_number}' ;
$this -> replace [] = $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 () );
}
/**
* get_content_html function .
*
* @ access public
* @ return string
*/
function get_content_html () {
ob_start ();
woocommerce_get_template ( $this -> template_html , array (
'order' => $this -> object ,
'email_heading' => $this -> get_heading ()
) );
return ob_get_clean ();
}
/**
* get_content_plain function .
*
* @ access public
* @ return string
*/
function get_content_plain () {
ob_start ();
woocommerce_get_template ( $this -> template_plain , array (
'order' => $this -> object ,
'email_heading' => $this -> get_heading ()
) );
return ob_get_clean ();
}
/**
* 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'
),
'recipient' => array (
'title' => __ ( 'Recipient(s)' , 'woocommerce' ),
'type' => 'text' ,
'description' => sprintf ( __ ( 'Enter recipients (comma separated) for this email. Defaults to <code>%s</code>.' , 'woocommerce' ), esc_attr ( get_option ( 'admin_email' ) ) ),
'placeholder' => '' ,
'default' => ''
),
'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' => '' ,
'default' => ''
),
'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' => '' ,
'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' ),
)
)
);
}
}