From d02c7addddd3a562b6de0c562c8b7dfd60ee3d21 Mon Sep 17 00:00:00 2001 From: Ivan Sadovin Date: Thu, 16 Jul 2026 18:16:47 +0300 Subject: [PATCH] fix: filter out items with zero price from response --- README.md | 2 +- payanyway/wc-payanyway.php | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e966012..e9f98fa 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ![PHP](https://img.shields.io/badge/PHP-5.6%2B-purple) ![License](https://img.shields.io/badge/License-MIT-green) -> **📦 Версия модуля: 1.5.1** +> **📦 Версия модуля: 1.5.2** > **ℹ️ Примечание по валюте** > Данный модуль работает **только с валютой RUB (Российский рубль)**. diff --git a/payanyway/wc-payanyway.php b/payanyway/wc-payanyway.php index 32f88b9..11dedae 100644 --- a/payanyway/wc-payanyway.php +++ b/payanyway/wc-payanyway.php @@ -3,7 +3,7 @@ /** * Plugin Name: Монета | PayAnyWay * Description: PayAnyWay - Приём платежей для бизнеса на сайтах, в соцсетях и приложениях - * Version: 1.5.1 + * Version: 1.5.2 * Author: PayAnyWay * Author URI: https://payanyway.ru * Requires Plugins: woocommerce @@ -25,7 +25,7 @@ function woocommerce_payanyway() { return; class WC_Payanyway extends WC_Payment_Gateway { - const MODULE_VERSION = '1.5.1'; + const MODULE_VERSION = '1.5.2'; const MODULE_NAME = 'payanyway'; const PROD_ENDPOINT = 'https://www.payanyway.ru/assistant.htm'; @@ -38,7 +38,7 @@ function woocommerce_payanyway() { const XML_CONTENT_TYPE = 'application/xml'; const JSON_CONTENT_TYPE = 'application/json'; 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 CLIENT_NAME_MAX_LENGTH = 256; @@ -443,7 +443,7 @@ function woocommerce_payanyway() { $description = $this->isPayedOrder($order) ? 'Order already paid' : 'Order success paid'; if (!$this->isPayedOrder($order)) { $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(); } @@ -602,6 +602,9 @@ function woocommerce_payanyway() { $name = (isset($item['name'])) ? $item['name'] : $item->get_name(); $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(); $rate = $product->is_taxable() ? $this->getItemTaxRate($item) : null; @@ -658,6 +661,9 @@ function woocommerce_payanyway() { $shippingTotal = (float)$order->get_shipping_total(); $shippingTax = (float)$order->get_shipping_tax(); $shippingPrice = $shippingTotal + $shippingTax; + if (0.0 === $shippingPrice) { + return null; + } $shippingRate = (0.0 !== $shippingTotal) ? ($shippingTax / $shippingTotal) * 100 : null;