Мы хотим создать возмещение через веб-крючок, но возвращаемая сумма, по-видимому, в три раза превышает возвращаемую сумму.
Ниже приведено то, что мы имеем для кода, и это срабатывает только один раз.
$order_id = (isset($_REQUEST["order_id"]) && strlen($_REQUEST["order_id"]) > 0) ? intval($_REQUEST["order_id"]) : false;
$amount = (isset($_REQUEST["amount"]) && strlen($_REQUEST["amount"]) > 0) ? floatval($_REQUEST["amount"]) : false;
$reason = (isset($_REQUEST["reason"]) && strlen($_REQUEST["reason"]) > 0) ? $_REQUEST["reason"] : false;
if ($order_id) {
$order = wc_get_order($order_id);
if ($order->get_remaining_refund_amount() >= $amount) {
$refund = wc_create_refund(array(
'amount' => $amount,
'reason' => $reason,
'order_id' => $order_id,
'refund_payment' => true
));
if (is_wp_error($refund)) {
if ($refund->get_error_message() == 'Invalid refund amount.') {
echo 'Refund requested exceeds remaining order balance of ' . $order->get_formatted_order_total();
} else {
echo $refund->get_error_message();
}
} else {
echo $refund->get_id();
}
} else {
echo 'Refund requested exceeds remaining order balance of ' . $order->get_formatted_order_total();
}
}
Но, как видно из этого снимка экрана ниже, возвращаемое значение утроено, но не ясно, почему
Может ли кто-нибудь пролить свет на то, почему это может произойти.
Запрос поступает в виде запроса HTTP после отправки с уникальным идентификатором ключа.например,
https://example.com/process-refunds/?key=ff5f61b5a9d6ff2a5d7fb9fc815113d4&order_id=1234&amount=100&reason=Testing