File Manager
<?php
/**
* Previous Orders
*/
if (!defined('ABSPATH')) {
exit; // Exit if accessed directly.
}
if (!class_exists('FP_RAC_Previous_Order')) {
/**
* FP_RAC_Previous_Order Class.
*/
class FP_RAC_Previous_Order {
/**
* FP_RAC_Previous_Order Class initialization.
*/
public static function init() {
add_action('wp_ajax_rac_add_old_order', array( __CLASS__, 'fp_rac_get_list_of_ids_by_query' ));
add_action('wp_ajax_rac_chunk_previous_order_list', array( __CLASS__, 'fp_rac_add_old_order_byupdate' ));
add_action('wp_ajax_rac_get_old_order_data', array( __CLASS__, 'fp_rac_get_old_older_ids_by_query' ));
add_action('wp_ajax_rac_chunk_old_order_list', array( __CLASS__, 'fp_rac_update_old_order_byupdate' ));
}
public static function fp_rac_get_old_older_ids_by_query() {
check_ajax_referer('oldorder-update', 'rac_security');
if (isset($_POST['rac_order_value'])) {
$args = array(
'post_type' => 'raccartlist',
'posts_per_page' => '-1',
'post_status' => array( 'rac-cart-new', 'rac-cart-abandon', 'rac-cart-recovered', 'trash' ),
'meta_query' => array(
array(
'key' => 'rac_user_details',
'value' => 'old_order',
),
),
'fields' => 'ids',
'cache_results' => false,
);
$cartlists = fp_rac_check_query_having_posts($args);
echo json_encode($cartlists);
}
exit();
}
public static function fp_rac_update_old_order_byupdate() {
check_ajax_referer('oldorder-update', 'rac_security');
if (isset($_POST['ids']) && !empty($_POST['ids'])) {
$cart_ids = wc_clean(wp_unslash($_POST['ids']));
if (rac_check_is_array($cart_ids)) {
foreach ($cart_ids as $cart_id) {
$cartlist = fp_rac_create_cart_list_obj($cart_id);
$order = fp_rac_format_cart_details($cartlist->cart_details, $cartlist);
if (is_object($order) && ( 'old_order' == $cartlist->user_id )) {
$order_id = fp_rac_get_order_obj_data($order, 'id');
if ($order_id) {
$user_email = fp_rac_get_order_obj_data($order, 'billing_email');
$first_name = fp_rac_get_order_obj_data($order, 'billing_first_name');
$last_name = fp_rac_get_order_obj_data($order, 'billing_last_name');
$phone_number = fp_rac_get_order_obj_data($order, 'billing_phone');
$product_ids = fp_rac_extract_cartlist_content($order, $cartlist, true);
$product_ids = implode(',', $product_ids);
$update_meta = array(
'rac_product_details' => $product_ids,
'rac_user_info' => $first_name . ',' . $last_name,
'rac_phone_number' => $phone_number,
'rac_cart_email_id' => $user_email,
);
fp_rac_update_cartlist_post_meta($update_meta, $cart_id);
}
}
}
}
} else {
echo json_encode('completed');
}
exit();
}
public static function fp_rac_get_list_of_ids_by_query() {
check_ajax_referer('oldorder-cartlist', 'rac_security');
$user_permission = fp_rac_get_cartlist_entry_restriction('user');
$guest_permission = fp_rac_get_cartlist_entry_restriction('guest');
if ('no' == $user_permission && 'no' == $guest_permission) {
delete_option('rac_abandon_previous_count');
echo json_encode(array());
exit();
}
if (isset($_POST['rac_order_time'])) {
$order_statuses = isset($_POST['rac_order_status']) ? wc_clean(wp_unslash($_POST['rac_order_status'])) : '';
$args = array(
'post_type' => 'shop_order',
'posts_per_page' => '-1',
'post_status' => $order_statuses,
'return' => 'ids',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'rac_order_placed',
'compare' => 'NOT EXISTS',
),
array(
'key' => 'guest_cart',
'compare' => 'NOT EXISTS',
),
array(
'key' => 'old_order_updated',
'compare' => 'NOT EXISTS',
),
),
);
if ('no' == $user_permission && 'no' != $guest_permission) {
$args['customer_id'] = '0';
} elseif ('no' != $user_permission && 'no' == $guest_permission) {
$args['customer_id'] = '0';
}
if ('all' != wc_clean(wp_unslash($_POST['rac_order_time']))) {
if (!empty($_POST['rac_from_time']) || !empty($_POST['rac_to_time'])) {
$from_strtotime = strtotime(wc_clean(wp_unslash($_POST['rac_from_time'])));
$to_strtotime = strtotime(wc_clean(wp_unslash($_POST['rac_to_time'])));
//convert std format
$convert_from_date = gmdate('Y-m-d', $from_strtotime);
$convert_to_date = gmdate('Y-m-d', $to_strtotime);
$from_time_array = explode('-', $convert_from_date);
$to_time_array = explode('-', $convert_to_date);
if (!empty($_POST['rac_to_time'])) {
$date_query = array(
'before' => array(
'year' => $to_time_array[0],
'month' => $to_time_array[1],
'day' => $to_time_array[2],
),
'inclusive' => true,
);
} elseif (!empty($_POST['rac_from_time'])) {
$date_query = array(
'after' => array(
'year' => $from_time_array[0],
'month' => $from_time_array[1],
'day' => $from_time_array[2],
),
'inclusive' => true,
);
} else {
$date_query = array(
'after' => array(
'year' => $from_time_array[0],
'month' => $from_time_array[1],
'day' => $from_time_array[2],
),
'before' => array(
'year' => $to_time_array[0],
'month' => $to_time_array[1],
'day' => $to_time_array[2],
),
'inclusive' => true,
);
}
$args = array_merge($args, array( 'date_query' => $date_query ));
}
}
$order_ids = wc_get_orders($args);
delete_option('rac_abandon_previous_count');
echo json_encode($order_ids);
}
exit();
}
public static function fp_rac_add_old_order_byupdate() {
check_ajax_referer('oldorder-cartlist', 'rac_security');
if (isset($_POST['rac_order_status']) && !empty($_POST['ids'])) {
$updated_count = 0;
$the_query = wc_clean(wp_unslash($_POST['ids']));
$looking_order_status = wc_clean(wp_unslash($_POST['rac_order_status']));
$order_statuses = fp_rac_format_previous_order_statuses($looking_order_status);
$check_previous_data = get_option('rac_abandon_previous_count');
if (rac_check_is_array($the_query)) {
foreach ($the_query as $each_query) {
$order = fp_rac_get_order_obj($each_query);
$order_id = fp_rac_get_order_obj_data($order, 'id');
$subscription_check = fp_rac_check_is_subscription($order_id);
$paymentplan_check = fp_rac_check_is_payment_plan($order_id);
if (!$subscription_check && !$paymentplan_check) {
//check to, not importing order which are recovered and captured on place order
if (in_array($order->get_status(), $order_statuses)) {
$insert_id = FP_RAC_Insert_CartList_Entry::fp_rac_insert_old_order_entry($order_id);
if ($insert_id) {
$order->update_meta_data('old_order_updated', 'yes'); // this makes sure for no duplication
$order->save();
$updated_count++;
}
}
}
}
}
update_option('rac_abandon_previous_count', $check_previous_data + $updated_count);
} else {
echo json_encode(array( 'count' => get_option('rac_abandon_previous_count') ));
}
exit();
}
}
FP_RAC_Previous_Order::init();
}
File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com