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  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 
<?php
/**
 * It will have all the common function needed all over the plugin.
 * 
 * @author   Tyche Softwares
 * @package  Abandoned-Cart-Pro-for-WooCommerce/Database-Layer
 * @since 7.7
 */

if (!defined('ABSPATH')) {
    exit; // Exit if accessed directly.
}

if ( !class_exists('WCAP_DB_Layer' ) ) {

    /**
     * Database access layer for performing DB related activities
     */
    class WCAP_DB_Layer {
        
        /**
         * Function ton insert data in database
         * 
         * @param int $user_id User ID
         * @param string $cart_info Cart Info Object encoded as string
         * @param int $abandoned_time Time
         * @param string $ignored If Cart Ignored
         * @param int $recovered Recovered Order Number
         * @param string $unsubscribe If unsubscribed
         * @param string $user_type User Type
         * @param string $language Current Language
         * @param string $session_id Session ID
         * @param string $ip_address IP Address
         * @param string $manual_email Manual Email ID
         * @param string $wcap_trash If trashed
         * 
         * @globals mixed $wpdb Global Variable
         * 
         * @since 7.7
         * 
         * @return int Inserted ID
         */
        public static function insert_cart_history( $user_id, $cart_info, $abandoned_time, $ignored, $recovered, $unsubscribe = '0', $user_type, $language, $session_id, $ip_address, $manual_email, $wcap_trash ) {

            if ( !Wcap_Common::wcap_validate_cart( $cart_info ) ) {
                return false;
            }

            global $wpdb;

            if ( function_exists( 'icl_object_id' ) ) {
                $cart_info = self::add_wcml_currency( $cart_info );
            }

            $wpdb->insert( 
                WCAP_ABANDONED_CART_HISTORY_TABLE,
                array( 
                    'user_id'               => $user_id,
                    'abandoned_cart_info'   => $cart_info,
                    'abandoned_cart_time'   => $abandoned_time, 
                    'cart_ignored'          => $ignored, 
                    'recovered_cart'        => $recovered,
                    'unsubscribe_link'      => '0',
                    'user_type'             => $user_type, 
                    'language'              => $language,
                    'session_id'            => $session_id,
                    'ip_address'            => $ip_address,
                    'manual_email'          => $manual_email,
                    'wcap_trash'            => $wcap_trash ),
                array( '%d', '%s', '%d', '%s', '%d', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) );
            
            $insert_id = $wpdb->insert_id;
            
            if( 'on' == get_option( 'wcap_enable_sms_reminders' ) ) {
                wcap_common::wcap_insert_cart_id( $insert_id );
            }
            
            return $insert_id;
        }

        /**
         * Add Currency to cart info object with WPML active and currency switcher present
         * 
         * @param string $cart_info Cart Info object as string
         * 
         * @return string cart_info object with currency added
         * 
         * @since 7.7
         * 
         * @globals mixed Global woocommerce wpml object
         */
        public static function add_wcml_currency( $cart_info ) {
            global $woocommerce_wpml;

            $cart_info = stripslashes($cart_info);

            if ( isset( $woocommerce_wpml->settings[ 'enable_multi_currency' ] ) && 
                $woocommerce_wpml->settings[ 'enable_multi_currency' ] == '2' ) {

                $client_currency = function_exists( 'WC' ) ? WC()->session->get( 'client_currency' ) : $woocommerce->session->get( 'client_currency' );

                $cart_info = json_decode( $cart_info, true );

                if ( !empty( $cart_info ) && isset( $cart_info['cart'] ) && !empty( $cart_info['cart'] ) &&
                     isset( $client_currency ) && $client_currency !== '' ) {

                    $cart_info['currency'] = $client_currency;
                }

                $cart_info = json_encode($cart_info);
            }

            return ( $cart_info );
            //return addslashes( $cart_info );
        }
    }
}

return new WCAP_DB_Layer;
API documentation generated by ApiGen