diff --git a/src/include/class-wc-retailcrm-loyalty.php b/src/include/class-wc-retailcrm-loyalty.php index edd6aa6..815a4d0 100644 --- a/src/include/class-wc-retailcrm-loyalty.php +++ b/src/include/class-wc-retailcrm-loyalty.php @@ -396,7 +396,7 @@ if (!class_exists('WC_Retailcrm_Loyalty')) : $wcItem = $wcItems[(int) $externalId]; $wcItem->set_total($wcItem->get_total() - $discountLoyaltyTotal); $wcItem->calculate_taxes(); - $wcItem->save();// TODO Возможно это не нужно вводить, т.к. calculate_totals автоматом пересчитает + $wcItem->save(); } } diff --git a/src/include/class-wc-retailcrm-orders.php b/src/include/class-wc-retailcrm-orders.php index dda273b..11ef9b4 100644 --- a/src/include/class-wc-retailcrm-orders.php +++ b/src/include/class-wc-retailcrm-orders.php @@ -323,26 +323,9 @@ if (!class_exists('WC_Retailcrm_Orders')) : if ($response instanceof WC_Retailcrm_Response && $response->isSuccessful()) { $this->payment = $this->orderUpdatePaymentType($wcOrder); - - /* $responseCalculate = $this->retailcrm->calculateDiscountLoyalty( - $response['order']['site'], - $this->order, - $this->appliedBonuses - ); - - if (!$responseCalculate instanceof WC_Retailcrm_Response || !$responseCalculate->isSuccessful()) { - $this->appliedBonuses = 0; - }*/ - - $result = $this->loyalty->applyLoyaltyDiscount($wcOrder, $response['order'], $this->appliedBonuses); - - if (is_string($result)) { - writeBaseLogs($result); - $wcOrder->calculate_totals(); - } - } else { - $wcOrder->calculate_totals(); } + + $wcOrder->calculate_totals(); } else { $response = $this->retailcrm->ordersEdit($this->order); diff --git a/src/include/order/class-wc-retailcrm-order-item.php b/src/include/order/class-wc-retailcrm-order-item.php index 87de53c..55477f7 100644 --- a/src/include/order/class-wc-retailcrm-order-item.php +++ b/src/include/order/class-wc-retailcrm-order-item.php @@ -136,11 +136,7 @@ class WC_Retailcrm_Order_Item extends WC_Retailcrm_Abstracts_Data } } - if ($item->get_total()) { - $productPrice = ($item->get_total() / $item->get_quantity()) + ($loyaltyDiscount / $crmItem['quantity']); - } else { - $productPrice = 0; - } + $productPrice = ($item->get_total() / $item->get_quantity()) + ($loyaltyDiscount / $crmItem['quantity']); if ($this->cancelBonus && $productPrice > $price) { $productPrice = $item->get_total() / $item->get_quantity(); @@ -148,6 +144,8 @@ class WC_Retailcrm_Order_Item extends WC_Retailcrm_Abstracts_Data $item->set_total($item->get_total() + $loyaltyDiscount); $item->calculate_taxes(); $item->save(); + + $productPrice = $item->get_total() / $item->get_quantity(); } elseif ($productPrice > $price) { $productPrice = $item->get_total() / $item->get_quantity(); }