File: /var/www/html/breadsecret.com_bak20260325/custom/bak/ajax_data.php.bak20210507a
<?php
//include wp libriries and set timezone to HK
require_once('wp-load.php');
date_default_timezone_set("Asia/Hong_Kong");
global $wpdb;
/*
By Samiel on 2021-03-03
function to get new order information in every ? seconds
critiria:
(1) order date = today
(2) delivery date = today
(3) message not yet read
*/
if($_POST['section']=="get_today_new_order"){
//get today date (remember to set timezone to HK)
$today = date('Y-m-d');
$arr_result = array();
//order status to check...
$post_status = implode("','", array('wc-pending', 'wc-processing', 'wc-completed'));
//find order matched critria (1)
$result = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'shop_order' AND post_status IN ('{$post_status}') AND post_date LIKE '".$today."%'");
//loop all found orders
foreach ($result as $order_obj ){
$order = wc_get_order($order_obj->ID);
//get order delivery date from order meta table
$delivery_date = $order->get_meta('delivery_date', true);
// if delivery date is today
if($delivery_date == $today ){
//check if the order is already notified
$master_read_record = $wpdb->get_results("SELECT * FROM `notification_master_read` WHERE order_id = '".$order_obj->ID."' LIMIT 1");
if(count($master_read_record)==0){
//check if the order is notified by specific user
$user_read_record = $wpdb->get_results("SELECT * FROM `notification_user_read` WHERE order_id = '".$order_obj->ID."' AND user_id = '".$_POST['user_id']."' LIMIT 1");
if(count($user_read_record)==0){
$order = wc_get_order( $order_obj->ID );
$arr_ord = array();
$arr_ord['order'] = $order_obj->ID;
$arr_ord['product'] = array();
//loop all line item in order
foreach ( $order->get_items() as $item ) {
//get line item product info.
$prod = $item->get_product();
$sku = $prod->get_sku();
// get variation name
$variation_id = $item->get_variation_id();
$variation = new WC_Product_Variation($variation_id);
$variationName = implode(" / ", $variation->get_variation_attributes());
$product = wc_get_product(wc_get_product_id_by_sku($sku));
if($variation_id!=0){
$prod_name = $product->get_name()." - ".$variationName;
}else{
$prod_name = $product->get_name();
}
$arr_item = array();
$arr_item['name'] = $prod_name;
$arr_item['qty'] = $item->get_quantity();
$arr_ord['product'][]= $arr_item;
}
array_push($arr_result,$arr_ord);
}
}
}
}
//return result to ajax call in json format
echo json_encode($arr_result);
}
/*
By Samiel on 2021-03-03
function to let system know an order notification is already read and do not display again
*/
if($_POST['section']=="remove_notification"){
$wpdb->replace('notification_master_read', array(
'order_id' => $_POST['order_id'],
'status' => 1
)
);
}
/*
By Samiel on 2021-03-03
function to let system know an order notification is already read by specific user
*/
if($_POST['section']=="read_notification"){
$wpdb->replace('notification_user_read', array(
'order_id' => $_POST['order_id'],
'user_id' => $_POST['user_id'],
'status' => 1
)
);
}
/*
By Samiel on 2021-03-11
function to adjust sku stock in sku stock page
*/
if($_POST['section']=="adjust_sku_stock"){
$arr_result = array();
if($wpdb->update('sku_stock', array( $_POST['sku'] => $_POST['nqty']),array('stock_date'=>$_POST['stock_date']))){
$arr_result['condition']='success';
$arr_result['callout'] = $_POST['nqty'];
$arr_result['id'] = $_POST['sku']."__".$_POST['stock_date'];
$product = wc_get_product(wc_get_product_id_by_sku($_POST['sku']));
$sql_statement = "UPDATE sku_stock SET `".$_POST['sku']."` = '".$_POST['nqty']."' WHERE stock_date = '".$_POST['stock_date']."' LIMIT 1";
write_log($_POST['stock_date'], "Adjust Stock", "Back End", "0", $_POST['sku'], esc_sql($product->get_name()), $_POST['oqty'], $_POST['nqty'], $_POST['user_id'], get_client_ip(), $sql_statement);
}else{
$arr_result['condition']='fail';
}
echo json_encode($arr_result);
}
/*
By Samiel on 2021-04-07
function to mark an order is completed in order summary page
*/
if($_POST['section']=="mark_completed"){
$arr_result = array();
$arr_result['id'] = $_POST['ord_id'];
if($_POST['ord_id']!=""){
$orderDetail = new WC_Order( $_POST['ord_id'] );
$orderDetail->update_status("wc-completed", 'Completed', TRUE);
$arr_result['condition'] = "success";
}else{
$arr_result['condition'] = "fail";
}
echo json_encode($arr_result);
}
?>