3
0

fix: filter out items with zero price from response

This commit is contained in:
Ivan Sadovin 2026-07-16 18:16:47 +03:00 committed by Git Moneta
parent 7010a4649d
commit d02c7adddd
No known key found for this signature in database
GPG Key ID: 72A746BD7C9C5031
2 changed files with 11 additions and 5 deletions

View File

@ -5,7 +5,7 @@
![PHP](https://img.shields.io/badge/PHP-5.6%2B-purple) ![PHP](https://img.shields.io/badge/PHP-5.6%2B-purple)
![License](https://img.shields.io/badge/License-MIT-green) ![License](https://img.shields.io/badge/License-MIT-green)
> **📦 Версия модуля: 1.5.1** > **📦 Версия модуля: 1.5.2**
> ** Примечание по валюте** > ** Примечание по валюте**
> Данный модуль работает **только с валютой RUB (Российский рубль)**. > Данный модуль работает **только с валютой RUB (Российский рубль)**.

View File

@ -3,7 +3,7 @@
/** /**
* Plugin Name: Монета | PayAnyWay * Plugin Name: Монета | PayAnyWay
* Description: PayAnyWay - Приём платежей для бизнеса на сайтах, в соцсетях и приложениях * Description: PayAnyWay - Приём платежей для бизнеса на сайтах, в соцсетях и приложениях
* Version: 1.5.1 * Version: 1.5.2
* Author: PayAnyWay * Author: PayAnyWay
* Author URI: https://payanyway.ru * Author URI: https://payanyway.ru
* Requires Plugins: woocommerce * Requires Plugins: woocommerce
@ -25,7 +25,7 @@ function woocommerce_payanyway() {
return; return;
class WC_Payanyway extends WC_Payment_Gateway { class WC_Payanyway extends WC_Payment_Gateway {
const MODULE_VERSION = '1.5.1'; const MODULE_VERSION = '1.5.2';
const MODULE_NAME = 'payanyway'; const MODULE_NAME = 'payanyway';
const PROD_ENDPOINT = 'https://www.payanyway.ru/assistant.htm'; const PROD_ENDPOINT = 'https://www.payanyway.ru/assistant.htm';
@ -38,7 +38,7 @@ function woocommerce_payanyway() {
const XML_CONTENT_TYPE = 'application/xml'; const XML_CONTENT_TYPE = 'application/xml';
const JSON_CONTENT_TYPE = 'application/json'; const JSON_CONTENT_TYPE = 'application/json';
const TEXT_CONTENT_TYPE = 'text/plain; charset=UTF-8'; const TEXT_CONTENT_TYPE = 'text/plain; charset=UTF-8';
const TRANSACTION_ID_STRING_DELIMITER = '|'; const TRANSACTION_ID_STRING_DELIMITER = '_';
const DESCRIPTION_MAX_LENGTH = 500; const DESCRIPTION_MAX_LENGTH = 500;
const CLIENT_NAME_MAX_LENGTH = 256; const CLIENT_NAME_MAX_LENGTH = 256;
@ -443,7 +443,7 @@ function woocommerce_payanyway() {
$description = $this->isPayedOrder($order) ? 'Order already paid' : 'Order success paid'; $description = $this->isPayedOrder($order) ? 'Order already paid' : 'Order success paid';
if (!$this->isPayedOrder($order)) { if (!$this->isPayedOrder($order)) {
$order->add_order_note(__('Платеж успешно завершен', 'woocommerce_gateway_payanyway')); $order->add_order_note(__('Платеж успешно завершен', 'woocommerce_gateway_payanyway'));
$order->update_status(OrderStatus::COMPLETED, __('Платеж успешно оплачен', 'woocommerce_gateway_payanyway')); $order->update_status(OrderStatus::PROCESSING, __('Платеж успешно оплачен', 'woocommerce_gateway_payanyway'));
$order->payment_complete(); $order->payment_complete();
} }
@ -602,6 +602,9 @@ function woocommerce_payanyway() {
$name = (isset($item['name'])) ? $item['name'] : $item->get_name(); $name = (isset($item['name'])) ? $item['name'] : $item->get_name();
$price = wc_get_price_including_tax($product); $price = wc_get_price_including_tax($product);
if (0.0 === $price) {
continue;
}
$quantity = (isset($item['item_meta']['_qty'][0])) ? $item['item_meta']['_qty'][0] : $item->get_quantity(); $quantity = (isset($item['item_meta']['_qty'][0])) ? $item['item_meta']['_qty'][0] : $item->get_quantity();
$rate = $product->is_taxable() ? $this->getItemTaxRate($item) : null; $rate = $product->is_taxable() ? $this->getItemTaxRate($item) : null;
@ -658,6 +661,9 @@ function woocommerce_payanyway() {
$shippingTotal = (float)$order->get_shipping_total(); $shippingTotal = (float)$order->get_shipping_total();
$shippingTax = (float)$order->get_shipping_tax(); $shippingTax = (float)$order->get_shipping_tax();
$shippingPrice = $shippingTotal + $shippingTax; $shippingPrice = $shippingTotal + $shippingTax;
if (0.0 === $shippingPrice) {
return null;
}
$shippingRate = (0.0 !== $shippingTotal) ? ($shippingTax / $shippingTotal) * 100 : null; $shippingRate = (0.0 !== $shippingTotal) ? ($shippingTax / $shippingTotal) * 100 : null;