Quiero mostrar el precio unitario del artículo (incluido el precio de venta y el precio normal) en el correo electrónico del cliente y en la página de pedido de vista del cliente.
En el objeto de elemento de línea de pedido de WooCommerce, solo puede ver el subtotal de la línea de elemento, el subtotal, la cantidad, etc. Pero no muestra el precio unitario del precio original (incluidos el precio normal y el precio de oferta) en los datos. A lo sumo, puedo obtener el precio unitario sumando el monto descontado y el subtotal de la línea. Pero de ninguna manera sé si el artículo está en venta o no, así como el precio de respuesta.
En este momento puedo usar los siguientes códigos para obtener el precio unitario en el artículo del pedido:
$product = $item->get_product();
$product->get_price_html();
El problema con esto get_price_html()
es mostrar el precio del producto en tiempo real. Lo que significa que si cambié el precio del producto después de un tiempo, el precio en los detalles del pedido anterior también cambiará. Esto causará mucha confusión cuando alguien vea el pedido anterior.
Entonces, ¿cómo puedo obtener el precio unitario original de la línea de pedido en los detalles del pedido?
davidb3rn
Esta puede no ser la mejor respuesta. Pero viendo que sigue sin respuesta. Yo he tratado $item->get_price();
y devuelve que es una función indefinida. Sin embargo, según mi problema, pude usar $item->get_total()
y $item->get_quantity()
. Basado en esto, puedo dividir el precio por el total. Esta es mi solución temporal:
foreach ($items as $item):
$product_name = $item->get_name();
$product_price = $item->get_total();
$product_quantity = $item->get_quantity();
//This gets per unit price
$unit_price = $product_price / $product_quantity;
?>
<tr>
<td>
<?= $product_name ?>
</td>
<td>
<?= number_format($unit_price, 2) ?> / Unit
</td>
<td>
<?= $product_quantity ?>
</td>
<td>
<?= number_format($product_price, 2) ?>
</td>
</tr>
<?php
endforeach;
Actualizar:
https://www.businessbloomer.com/woocommerce-easy-get-order-info-total-items-etc-from-order-object/
Manera fácil de seleccionar todo en su orden.
-
Al dividir el total de la línea por la cantidad, obtendrá el precio con descuento de un artículo en el momento en que se registró el pedido, pero no el precio normal del artículo. Desafortunadamente, no parece que el precio se almacene con los datos del artículo del pedido. Al menos, no que yo pueda ver. Estoy en el mismo barco que @dev-jim. SI puede determinar la cantidad de descuento que se aplicó, puede retroceder desde allí.
– eljefejb
16 de julio de 2021 a las 16:21