woocommerce получает оригинальную цену за единицу товара в заказе - PullRequest
2 голосов
/ 31 марта 2020

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

В объекте позиции заказа woocommerce вы можете видеть только промежуточный итог строки изделия, промежуточный итог, qty..et c. Но он не показывает исходную цену за единицу (включая обычную цену и цену продажи) в данных. Самое большее, я могу получить цену за единицу, добавив дисконтированную сумму и промежуточный итог строки. Но я никоим образом не знаю, продается ли товар или нет, а также отвечая цене.

Прямо сейчас я могу использовать следующие коды для получения цены за единицу в позиции заказа:

$product = $item->get_product();
$product->get_price_html();

Проблема с этим get_price_html() заключается в отображении цены продукта в реальном времени. Это означает, что если я через какое-то время изменил цену товара, то цена в деталях предыдущего заказа также изменится. Это приведет к путанице, когда кто-то увидит старый заказ.

Так как я могу получить исходную цену за единицу позиции в деталях заказа?

1 Ответ

0 голосов
/ 31 марта 2020

woocommerce_checkout_create_order_line_item имеет 4 доступных аргумента

  • $item является экземпляром WC_Order_Item_Product
  • $cart_item_key уникальный элемент корзины * га sh ключ
  • $values элемент корзины
  • $order экземпляр WC_Order объект

$values - элемент корзины, вы можете использовать его вместо

function my_checkout_create_order_line_item( $item, $cart_item_key, $values, $order ) {
    $product = $values['data'];

    $item->add_meta_data( 'My text', $product->get_price_html(), $item->get_id() );
}
add_action('woocommerce_checkout_create_order_line_item', 'my_checkout_create_order_line_item', 10, 4 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...