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
<?php
if ( ! defined( 'ABSPATH' ) ) exit;
if ( !class_exists('Wcap_Admin_Recovery' ) ) {
class Wcap_Admin_Recovery{
public static function wcap_email_admin_recovery ( $order_id, $wcap_old_status, $wcap_new_status ) {
global $woocommerce;
if ( ( 'pending' == $wcap_old_status && 'processing' == $wcap_new_status )
|| ( 'pending' == $wcap_old_status && 'completed' == $wcap_new_status )
|| ( 'pending' == $wcap_old_status && 'on-hold' == $wcap_new_status )
|| ( 'failed' == $wcap_old_status && 'completed' == $wcap_new_status )
|| ( 'failed' == $wcap_old_status && 'processing' == $wcap_new_status )
) {
$user_id = get_current_user_id();
$ac_email_admin_recovery = get_option( 'ac_email_admin_on_recovery' );
$order = new WC_Order( $order_id );
if( version_compare( $woocommerce->version, '3.0.0', ">=" ) ) {
$user_id = $order->get_user_id();
} else {
$user_id = $order->user_id;
}
if( $ac_email_admin_recovery == 'on' ) {
$recovered_email_sent = get_post_meta( $order_id, 'wcap_recovered_email_sent', true );
$wcap_check_order_is_recovered = Wcap_Admin_Recovery::wcap_check_order_is_recovered ( $order_id );
if ( 'yes' != $recovered_email_sent && true === $wcap_check_order_is_recovered ) {
$order = new WC_Order( $order_id );
$email_heading = __( 'New Customer Order - Recovered', 'woocommerce' );
$blogname = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
$email_subject = __( 'New Customer Order - Recovered', 'woocommerce' );
$user_email = get_option( 'admin_email' );
$headers[] = "From: Admin <".$user_email.">";
$headers[] = "Content-Type: text/html";
ob_start();
wc_get_template( 'emails/admin-new-order.php', array(
'order' => $order,
'email_heading' => $email_heading,
'sent_to_admin' => false,
'plain_text' => false,
'email' => true
)
);
$email_body = ob_get_clean();
wc_mail( $user_email, $email_subject, $email_body, $headers );
update_post_meta( $order_id, 'wcap_recovered_email_sent', 'yes' );
}
}
}
}
public static function wcap_check_order_is_recovered ( $wcap_order_id ){
global $wpdb;
$wcap_recover_order_query = "SELECT `recovered_cart` FROM `". WCAP_ABANDONED_CART_HISTORY_TABLE ."` WHERE `recovered_cart` = %d";
$wcap_recover_order_query_result = $wpdb->get_results( $wpdb->prepare( $wcap_recover_order_query, $wcap_order_id ) );
if ( count( $wcap_recover_order_query_result ) > 0 ){
return true;
}
return false;
}
}
}