Проблема в том, что когда я получить данные заказа через WooCommerce REST API (например, /wp-json/wc/v3/order/{id}), итоговые поля округляются до целых чисел для всех валют, даже для таких валют, как доллар США, где десятичные дроби важны.
Чего я пытаюсь достичь:
Сохранять на информационной панели WooCommerce и витрине цены без десятичных знаков для иен. .
Убедитесь, что WooCommerce REST API возвращает итоговые суммы заказов с двумя десятичными знаками для валют, которые этого требуют (например, долларов США).
Что я сделал Пробовал:
Я попытался использовать фильтр woocommerce_rest_prepare_shop_order_object, чтобы изменить общее поле в ответе API. Вот код, который я использовал:
Код: Выделить всё
add_filter( 'woocommerce_rest_prepare_shop_order_object', 'modify_order_total_in_api', 10, 3 );
function modify_order_total_in_api( $response, $order, $request ) {
// Check if the total exists
if ( isset( $response->data['total'] ) ) {
// Format the total with 2 decimals
$response->data['total'] = number_format( $order->get_total(), 2, '.', '' );
}
return $response;
}
- API добавляет два десятичных знака к сумму.
- Он по-прежнему возвращает округленную сумму заказа (например, 26,00 вместо 25,99 для долларов США).
- Суммы для валют, отличных от JPY (например, долларов США), отображаются правильно с десятичные дроби как на витрине, так и на панели заказов WooCommerce.
- Если я изменю настройку десятичной дроби на панели управления WooCommerce с 0 на 2, API начинает возвращать правильные суммы заказов с десятичными дробями для всех валюты. Однако это также приводит к отображению десятичных знаков на витрине магазина для JPY, что нежелательно.
- Как обеспечить, чтобы API учитывал десятичные настройки валюты (например, 2 для долларов США), сохраняя при этом панель управления и витрину настройки с 0 десятичными знаками для JPY?
- Есть ли другие фильтры, действия или методы, которые мне следует рассмотреть для этого варианта использования?
< /li>
Может быть, мне что-то еще не хватает?
Подробнее здесь: https://stackoverflow.com/questions/793 ... i-response