Overview
  • Package
  • Class
  • Tree
  • Deprecated
  • Todo
  • Hook Reference
  • Docs Home

Packages

  • Abandoned-Cart-Pro-for-WooCommerce
    • Admin
      • Action
      • Activate-plugin
      • Component
      • I18N
      • Import-Pro
      • License
      • Menu
      • Notices
      • Popup-Modal
        • Cart-Detail
      • Recover
      • Report
      • Setting
      • Settings
      • SMS
      • Tab
      • Template
    • Ajax-Functions
    • Classes
    • Common-Functions
    • Database-Layer
    • Encrypt-Decrypt-Data
    • Frontend
      • Cart-Capture
      • Cart-Populate
      • Coupon
      • Place-Order
    • Setting
    • Update
  • None

Classes

  • EDD_AC_WOO_Plugin_Updater
  • Wcap_Abandoned_Cart_Details
  • Wcap_Abandoned_Cart_List
  • Wcap_Abandoned_Orders_Table
  • Wcap_Abandoned_Trash_Orders_Table
  • Wcap_Actions
  • Wcap_Actions_Handler
  • Wcap_Activate_Plugin
  • wcap_active_license_notice
  • Wcap_Add_Cart_Popup_Modal
  • Wcap_Add_Settings
  • Wcap_Admin_Recovery
  • Wcap_Adv_settings
  • Wcap_Aes
  • Wcap_Aes_Ctr
  • Wcap_Ajax
  • Wcap_All_Component
  • Wcap_Atc_Dashboard
  • Wcap_Cart_Updated
  • Wcap_Common
  • Wcap_Coupon
  • Wcap_Dashboard
  • Wcap_Dashboard_Report
  • Wcap_Dashboard_Report_Action
  • Wcap_Dashboard_Widget
  • WCAP_Dashboard_Widget_Heartbeat
  • Wcap_Dashboard_Widget_Report
  • WCAP_DB_Layer
  • Wcap_Default_Settings
  • Wcap_Display_Notices
  • Wcap_EDD
  • Wcap_Eent_Email_List
  • Wcap_Email_Settings
  • Wcap_Email_Template_Fields
  • Wcap_Email_Template_List
  • Wcap_Import_Lite_to_Pro
  • Wcap_Load_Hooks
  • Wcap_Load_Scripts
  • Wcap_Localization
  • WCAP_Manual_Email
  • Wcap_Menu
  • WCAP_On_Placed_Order
  • Wcap_Order_Received
  • Wcap_Personal_Data_Eraser
  • Wcap_Personal_Data_Export
  • Wcap_Populate_Cart_Of_User
  • Wcap_Print_And_CSV
  • Wcap_Product_Report_List
  • Wcap_Product_Report_Table
  • Wcap_Recover_Orders_Table
  • Wcap_Recover_Trash_Orders_Table
  • Wcap_Recovered_Order_List
  • Wcap_Send_Manual_Email
  • Wcap_Sent_Emails_Table
  • Wcap_SMS
  • Wcap_SMS_Templates
  • Wcap_Templates_Table
  • Wcap_Tiny_Mce
  • WCAP_Tiny_Url
  • Wcap_Tracking_msg
  • Wcap_TS_deactivate
  • Wcap_TS_Faq_Support
  • Wcap_TS_Tracker
  • Wcap_TS_tracking
  • Wcap_TS_Welcome
  • Wcap_TS_Woo_Active
  • Wcap_Update_Check
  • Woocommerce_Abandon_Cart

Functions

  • wcap_add_notification_meta
  • wcap_get_notification_meta
  • wcap_get_notification_meta_by_key
  • wcap_get_template_status
  • wcap_update_notification_meta
 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 
<?php
/**
 * It will update the abadoned carts to recovered cart when customer reached the order received page.
 * @author   Tyche Softwares
 * @package  Abandoned-Cart-Pro-for-WooCommerce/Classes
 * @since 5.0
 */
if (!defined('ABSPATH')) {
    exit; // Exit if accessed directly.
}
if ( !class_exists('Wcap_Order_Received' ) ) {

    /**
     * It will update the abadoned carts to recovered cart when customer reached the order received page.
     */
    class Wcap_Order_Received {
        /**
         * It will update the abadoned carts to recovered cart when customer reached the order received page.
         * If customer had placed the order after cut off time and reached the order recived page then it will also delete the abandoned cart if the order status is not pending or failed.
         * @hook woocommerce_order_details_after_order_table
         * @param object | array $order Order details
         * @since 5.0
         */
        public static function  wcap_action_after_delivery_session( $order ) {
            if( session_id() === '' ){
                //session has not started
                session_start();
            }
            $order_id= Wcap_Common::wcap_get_ordrer_id( $order );

            $wcap_order = new WC_Order( $order_id );
            $wcap_get_order_status = $wcap_order->get_status();
            
            $get_abandoned_id_of_order  = get_post_meta( $order_id, 'wcap_recover_order_placed', true );
            $get_sent_email_id_of_order = get_post_meta( $order_id, 'wcap_recover_order_placed_sent_id', true );


            if ( isset( $get_sent_email_id_of_order ) && '' != $get_sent_email_id_of_order ) {
                /* When Placed order button is clicked, we create post meta for that order.
                If that meta is found then update our plugin table for recovered cart */

                wcap_common::wcap_updated_recovered_cart( $get_abandoned_id_of_order, $order_id, $get_sent_email_id_of_order, $order );
            } else if ( '' != $get_abandoned_id_of_order && isset( $get_abandoned_id_of_order )  ){
                /* if order status is not pending or failed then we  will delete the abandoned cart record.
                   post meta will be created only if the cut off time has been reached.
                */
                Wcap_Order_Received::wcap_delete_abanadoned_data_on_order_status( $order_id , $get_abandoned_id_of_order, $wcap_get_order_status );
            }

            if ( isset( $_SESSION [ 'wcap_selected_language' ] ) && $_SESSION [ 'wcap_selected_language' ] !='' && function_exists('icl_register_string' ) ) {
                $_SESSION['wcap_selected_language'] = '';
            }
        }

        /**
         * If customer had placed the order after cut off time and reached the order recived page then it will also delete the abandoned cart if the order status is not pending or failed.
         * @param int | string $order_id Order id
         * @param int | string $get_abandoned_id_of_order Abandoned cart id
         * @param string $wcap_get_order_status Order status
         * @globals mixed $wpdb
         * @globals mixed $woocommerce
         * @since 5.0
         */
        public static function wcap_delete_abanadoned_data_on_order_status( $order_id, $get_abandoned_id_of_order, $wcap_get_order_status ) {

            global $wpdb, $woocommerce;
            

            if ( 'pending' != $wcap_get_order_status || 'failed' != $wcap_get_order_status ) {
                if ( isset( $get_abandoned_id_of_order ) && '' != $get_abandoned_id_of_order ){
                  
                  $get_abandoned_cart_user_id_query   = "SELECT user_id FROM `" . WCAP_ABANDONED_CART_HISTORY_TABLE . "` WHERE id = %d ";
                  $get_abandoned_cart_user_id_results = $wpdb->get_results( $wpdb->prepare( $get_abandoned_cart_user_id_query, $get_abandoned_id_of_order ) );

                  if ( count( $get_abandoned_cart_user_id_results ) > 0 ){
                    $wcap_user_id = $get_abandoned_cart_user_id_results[0]->user_id;

                    if ( $wcap_user_id >= 63000000 ){
                      $wpdb->delete( WCAP_GUEST_CART_HISTORY_TABLE ,   array( 'id' => $wcap_user_id ) );
                    }

                    $wpdb->delete( WCAP_ABANDONED_CART_HISTORY_TABLE , array( 'id' => $get_abandoned_id_of_order ) );
                    delete_post_meta( $order_id,  'wcap_recover_order_placed', $get_abandoned_id_of_order );
                  }
                }
                // delete the cart ID from the list of carts to which SMS reminders will be sent.
                Wcap_Common::wcap_delete_cart_notification( $get_abandoned_id_of_order );
            }
        }
    }
}
API documentation generated by ApiGen