• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

При оплате через шлюз списывает больше товара, чем заказано

Image CMS
#1
Всем добрый день.

Возникла проблема: настроил оплату через шлюз Яндекса (официальный), протестировал вместе с сотрудником Яндекса. В тестовом режиме все работало отлично. В боевом режиме проблема: при оплате через шлюз скрипт woocommerce списывает не 1 единицу товара (которую пользователь оплатил), а 3.

Кто-нибудь сталкивался? Пытаюсь разобраться, где коррективы вносить в коде...
 
#3
Сотрудник Яндекса подтвердил, что скрипт обращается три раза к сайту - и, видимо, сайт три раза выполняет reduce_order_stock();
Ищу решение.
 
#4
Разобрался. Решение оставлю здесь на всякий случай.
Заменил в файле yandex_money.php строчку:
$order_w->reduce_order_stock();

на:
if ($_POST['action'] == 'paymentAviso') {
$order_w->reduce_order_stock();
}

Т.е. списывает теперь только при последнем обращении скрипта к сайту (когда есть уведомление об оплате).
 
Сверху Снизу