Woocommerce скидка - процент только в целых числах, отправленных на распространение - как рассчитать без потерь для клиента или компании - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь выяснить, как контролировать поведение скидок на моем сайте, чтобы он взаимодействовал с внешним каналом распространения. Прямо сейчас у меня есть успешная отправка почты с прикрепленным XML -файлом, когда клиент закончил платить.

Единственное поле данных, которое вызывает проблемы, - это скидка. Потому что:

Канал распространения принимает скидку только на каждый элемент (продукт) в виде целого числа в процентах

Я использовал простой XML и добавил данные для каждого элемента (проданного продукта), как это - только часть полного кода

// Basic $order data and wp_mail configurations BEFORE
    foreach ($order->get_items() as $item) {

      $product = $item->get_product();
      $isbn = get_field( 'isbn', $item->get_product_id() );
      $price = $product->get_price(); 
      $quantity = $item->get_quantity();

      $order_line = $order_head->addChild( 'Ordrelinje' );
      $order_line->addAttribute( 'besked', 'notat tilknyttet ordrelinjen' );
      $order_line->addAttribute( 'rabatprocent', '' ); 
      $order_line->addAttribute( 'stykpris', $price );
      $order_line->addAttribute( 'antal', $quantity );
      $order_line->addAttribute( 'isbn', $isbn );

    } 
// SimpleXML save and attachment created with the XML file AFTER
// Sent with wp_mail and the return tested AFTER

Так что проблема в основном:

Я знаю, как рассчитать процент от полной цены и скидки в данных о продукте [], но у меня возникают трудности с представлением гибкой системы с различными возможностями скидок (см. внизу)

Со скидкой как в процентах, так и в сумме вы можете себе представить, что у вас есть конфликт с целое число при расчете процентов после покупки. Некоторые десятичные дроби будут потеряны.

Пример:

Допустим, я делаю скидку на одну книгу в 22 KR (Дани sh), и цена без скидки была: 143.

Тогда скидка в процентах будет: 100/143 * 22: 15,38%.

Я бы, например, чтобы получить целое число в процентах, округлить с round(15.38, 0), чтобы получить 15.

И тогда клиент потеряет: .38%, то есть 143*0.0038 = 0.54KR


Так что мой вопрос:

У кого-нибудь есть идеи, как чтобы решить эту проблему, или обходной путь, чтобы скидка на сумму была, например, целым числом обычной цены в процентах. Или есть другие идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...