Как отобразить итоговую сумму заказа с десятичными знаками в ответе REST API WooCommercePhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как отобразить итоговую сумму заказа с десятичными знаками в ответе REST API WooCommerce

Сообщение Anonymous »

Я работаю над магазином WooCommerce с мультивалютной настройкой. Валютой по умолчанию моего магазина является японская иена, и у меня для параметра десятичной дроби цены на панели управления WooCommerce установлено значение 0, чтобы не отображать десятичные дроби для цен в иенах. Однако я также продаю в других валютах (например, в долларах США), и мне нужен REST API WooCommerce, чтобы возвращать итоговые суммы заказов с двумя знаками после запятой для этих валют.
Проблема в том, что когда я получить данные заказа через 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как отобразить итоговую сумму заказа с десятичными знаками в ответе REST API WooCommerce
    Anonymous » » в форуме Php
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • WooCommerce возвращает цену get_total() с двумя десятичными знаками
    Anonymous » » в форуме Php
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Используйте PHP для генерации случайной десятичной дроби между двумя десятичными знаками
    Anonymous » » в форуме Php
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Округление больших десятичных значений с двумя десятичными знаками
    Anonymous » » в форуме JAVA
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Как отобразить общую сумму заказа в уведомлениях по электронной почте WooCommerce
    Anonymous » » в форуме Php
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»