1
0
mirror of synced 2025-02-21 01:13:13 +03:00

fix depending on woocommerce 3.0 version (#17)

This commit is contained in:
Oleg Apanovich 2017-09-22 15:29:50 +03:00 committed by Alex Lushpai
parent a03d579b9d
commit fd440684de

View File

@ -238,6 +238,45 @@ if ( ! class_exists( 'WC_Retailcrm_Orders' ) ) :
$response = $this->retailcrm->ordersEdit($order_data);
}
/**
* get order data depending on woocommerce version
*
* @param int $order_id
*
* @return arr
*/
public function getOrderData($order_id) {
$order = new WC_Order( $order_id );
$order_data_arr = [];
if (version_compare(get_option('woocommerce_db_version'), '3.0', '<' )) {
$order_data_arr['id'] = $order->id;
$order_data_arr['date'] = $order->order_date;
$order_data_arr['payment_method'] = $order->payment_method;
$order_data_arr['discount_total'] = $order->data['discount_total'];
$order_data_arr['discount_tax'] = $order->data['discount_tax'];
$order_data_arr['customer_comment'] = $order->data['customerComment'];
} else {
$order_info = $order->get_data();
$order_data_arr['id'] = $order_info['id'];
$order_data_arr['payment_method'] = $order->get_payment_method();
$order_data_arr['date'] = $order_info['date_created']->date('Y-m-d H:i:s');
$order_data_arr['discount_total'] = $order_info['discount_total'];
$order_data_arr['discount_tax'] = $order_info['discount_tax'];
$order_data_arr['customer_comment'] = $order->get_customer_note();
}
return $order_data_arr;
}
/**
* process to combine order data
*
* @param int $order_id
*
* @return arr
*/
public function processOrder($order_id)
{
if ( !$order_id ){
@ -245,23 +284,26 @@ if ( ! class_exists( 'WC_Retailcrm_Orders' ) ) :
}
$order = new WC_Order( $order_id );
$order_data_info = $this->getOrderData($order_id);
$order_data = array();
$order_data['externalId'] = $order->id;
$order_data['externalId'] = $order_data_info['id'];
$order_data['number'] = $order->get_order_number();
$order_data['createdAt'] = $order->order_date;
$order_data['customerComment'] = $order->get_customer_note();
$order_data['createdAt'] = $order_data_info['date'];
$order_data['customerComment'] = $order_data_info['customer_comment'];
if ($this->retailcrm_settings['api_version'] == 'v5') {
$discount = $order->data['discount_total'] + $order->data['discount_tax'];
if ($discount > 0) $order_data['discountManualAmount'] = $discount;
} else {
$discount = $order->data['discount_total'] + $order->data['discount_tax'];
if ($discount > 0) $order_data['discount'] = $discount;
if ( $order_data_info['discount_total'] ) {
$discount = $order_data_info['discount_total'] + $order_data_info['discount_tax'];
if ($this->retailcrm_settings['api_version'] == 'v5') {
if ($discount > 0) $order_data['discountManualAmount'] = $discount;
} else {
if ($discount > 0) $order_data['discount'] = $discount;
}
}
if (!empty($order->payment_method) && !empty($this->retailcrm_settings[$order->payment_method]) && $this->retailcrm_settings['api_version'] != 'v5') {
$order_data['paymentType'] = $this->retailcrm_settings[$order->payment_method];
if ( !empty( $order_data_info['payment_method'] ) && !empty($this->retailcrm_settings[$order_data_info['payment_method']]) && $this->retailcrm_settings['api_version'] != 'v5') {
$order_data['paymentType'] = $this->retailcrm_settings[$order_data_info['payment_method']];
}
if(!empty($order->get_items( 'shipping' )) && $order->get_items( 'shipping' ) != '') {
@ -362,8 +404,8 @@ if ( ! class_exists( 'WC_Retailcrm_Orders' ) ) :
'externalId' => $order_id
);
if (!empty($order->payment_method) && !empty($this->retailcrm_settings[$order->payment_method])) {
$payment['type'] = $this->retailcrm_settings[$order->payment_method];
if (!empty($order_data_info['payment_method']) && !empty($this->retailcrm_settings[$order_data_info['payment_method']])) {
$payment['type'] = $this->retailcrm_settings[$order_data_info['payment_method']];
}
if ($order->is_paid()) {