Plugin Directory

Changeset 2367446


Ignore:
Timestamp:
08/23/2020 06:38:56 PM (6 years ago)
Author:
liorchen
Message:

1.0.147

Location:
infinitycrowds/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • infinitycrowds/trunk/includes/Emails/DeferSendingWooCommerceEmails.php

    r2358360 r2367446  
    3838                                //'woocommerce_order_status_pending_to_on-hold' => array( 'WC_Email_New_Order', $this->default_defer_time ),  // New order
    3939                                'woocommerce_order_status_pending_to_processing' => array( 'WC_Email_New_Order', $this->default_defer_time ),
    40                                 'woocommerce_order_status_failed_to_processing' => array( 'WC_Email_New_Order', $this->default_defer_time ), 
     40                                'woocommerce_order_status_failed_to_processing' => array( 'WC_Email_New_Order', $this->default_defer_time ), 
     41                                'woocommerce_order_status_pending_to_completed' => array( 'WC_Email_New_Order', $this->default_defer_time ),
    4142                                // Additional transitition-to-email class info from @djm56
    4243                                //'woocommerce_order_status_on-hold' => array('WC_Email_Customer_On_Hold_Order', $this->default_defer_time),  // Order on hold.
     
    4849        $this->non_delayed_emails_id_to_class = array(
    4950            'woocommerce_order_status_pending_to_processing' => 'WC_Email_Customer_Processing_Order',
    50             'woocommerce_order_status_failed_to_processing' => 'WC_Email_Customer_Processing_Order', 
     51            'woocommerce_order_status_failed_to_processing' => 'WC_Email_Customer_Processing_Order',
     52            'woocommerce_order_status_pending_to_completed' => 'WC_Email_Customer_Completed_Order',
    5153        );
    5254
     
    105107        if ( array_key_exists( $filter, $this->email_id_to_class ) ) {
    106108            // TODO: Consider verifying that $args[0] is a valid order number.
    107             //$order = wc_get_order( $args[ 0 ] );
     109            $order = wc_get_order( $args[ 0 ] );
     110            if (! is_a( $order, 'WC_Order' ) ) {
     111                return false;
     112            }
    108113            $order_num = $args[ 0 ];
    109114           
    110             wp_schedule_single_event( time() + $this->get_email_defer_time( $filter ), 'send_deferred_woocommerce_email', array( $order_num, $filter ) );
     115            if(!wp_schedule_single_event( time() + $this->get_email_defer_time( $filter ), 'send_deferred_woocommerce_email', array( $order_num, $filter ) ));{
     116                InfcrwdsPlugin()->logger->log('delayed events error scheduling: '. $order_num);
     117                return $true;
     118            }
    111119
    112120            if( array_key_exists($filter, $this->non_delayed_emails_id_to_class)) {
    113                 InfcrwdsPlugin()->logger->log('not delayed emails scheduling for 5 sec: '. $filter);
    114121                try {
    115                     wp_schedule_single_event( time() + 5, 'send_deferred_not_delayed_woocommerce_email', array( $order_num, $filter ) );
     122                    if(wp_schedule_single_event( time() + 5, 'send_deferred_not_delayed_woocommerce_email', array( $order_num, $filter ) )) {
     123                        InfcrwdsPlugin()->logger->log('not delayed emails scheduling for 5 sec: '. $filter);
     124                    }
     125                    else {
     126                        InfcrwdsPlugin()->logger->log('not delayed events error scheduling: '. $order_num);
     127                        WC()->mailer()->get_emails()[ $this->get_email_class( $filter ) ]->trigger( $order_num );
     128                    }
    116129                } catch (\Exception $e) {
    117130                    InfcrwdsPlugin()->logger->error('error scheduling not delayed emails 5 sec: ' . $e->getMessage());
     
    135148    function send_deferred_woocommerce_email( $order_id, $email_id ) {
    136149        //error_log( 'send_deferred_woocommerce_email for order: ' . $order_id );
    137 
    138         WC()->mailer()->get_emails()[ $this->get_email_class( $email_id ) ]->trigger( $order_id );
     150        $order = wc_get_order( $order_id );
     151        if ( is_a( $order, 'WC_Order' ) ) {
     152            InfcrwdsPlugin()->logger->log('got to send delayed emails '. $email_id . 'order' . $order_id);
     153            WC()->mailer()->get_emails()[ $this->get_email_class( $email_id ) ]->trigger( $order_id );
     154        } else {
     155            InfcrwdsPlugin()->logger->log('none order'. $order_id);
     156        }
    139157    }
    140158
    141159    function send_deferred_not_delayed__woocommerce_email( $order_id, $email_id ) {
    142         InfcrwdsPlugin()->logger->log('got to send not delayed emails '. $email_id);
    143         try {
    144             WC()->mailer()->get_emails()[ $this->get_not_delayed_email_class( $email_id ) ]->trigger( $order_id );
    145         } catch (\Exception $e) {
    146             InfcrwdsPlugin()->logger->error('error sending not delayed emails: ' . $e->getMessage());
     160        $order = wc_get_order( $order_id );
     161        if ( is_a( $order, 'WC_Order' ) ) {
     162            InfcrwdsPlugin()->logger->log('got to send not delayed emails '. $email_id . 'order' . $order_id);
     163            try {
     164                WC()->mailer()->get_emails()[ $this->get_not_delayed_email_class( $email_id ) ]->trigger( $order_id );
     165            } catch (\Exception $e) {
     166                InfcrwdsPlugin()->logger->error('error sending not delayed emails: ' . $e->getMessage());
     167            }
     168        }
     169        else {
     170            InfcrwdsPlugin()->logger->log('none order'. $order_id);
    147171        }
    148172    }
  • infinitycrowds/trunk/infcrwds.php

    r2367343 r2367446  
    1414 * Plugin URI:        https://infinitycrowd.io
    1515 * Description:       Upsell and Retention Platform
    16  * Version:           1.0.146
     16 * Version:           1.0.147
    1717 * Author:            Infinitycrowds
    1818 * Author URI:        https://infinitycrowd.io
     
    119119
    120120function define_plugin_properties() {
    121     define( 'INFCWDS_VERSION', '1.0.146' );
     121    define( 'INFCWDS_VERSION', '1.0.147' );
    122122    define( 'INFCWDS_MIN_WC_VERSION', '3.0.0' );
    123123    define( 'INFCWDS_MIN_WP_VERSION', '4.9' );
Note: See TracChangeset for help on using the changeset viewer.