gpt4 book ai didi

php - WooCommerce 获取订单商品单一价格(无数量乘法)

转载 作者:行者123 更新时间:2023-12-04 08:52:59 24 4
gpt4 key购买 nike

我正在寻找一种方法来获取 WooCommerce 中订单商品的单一价格。我在这里关注了这篇文章并使用了 get_price() 方法,但该方法似乎不再可用:

Woocommerce - Getting the order item price and quantity.

foreach ( $order_items as $order_item ) {
error_log( $order_item->get_price() );
error_log( print_r( $order_item, true ) );
}

Uncaught Error: Call to undefined methodWC_Order_Item_Product::get_price()

问题是我不能直接获取产品并在那里读取正常价格,因为我需要在下订单期间设置价格,并且产品价格以后可能会多次更改。

我还打印了整个订单项目以查找其中的单个价格字段,但什么也没找到:

[data:protected] => Array
(
[order_id] => 24
[name] => Dings Teil
[product_id] => 23
[variation_id] => 0
[quantity] => 2
[tax_class] =>
[subtotal] => 42.4
[subtotal_tax] => 6.78
[total] => 42.4
[total_tax] => 6.78
[taxes] => Array
(
[total] => Array
(
[6] => 6.784
)
[subtotal] => Array
(
[6] => 6.784
)
)
)

总而言之,我需要我的订单项目的单一价格。 WooCommerce 似乎有办法在订单项 View 中获取它,但我找不到他们处理此问题的方式:

enter image description here

因为我正在编写一个插件,所以任何 WooCommerce 更改都不是一个好主意。

更新:

是的,我也有过将小计除以数量的想法,但这可能会导致一些舍入问题,因为我的舍入不像 WooCommerce 舍入 100%。

最佳答案

方法 get_price()WC_Product 类使用...请改用以下内容:

foreach ( $order->get_items() as $item ) {
$product = $item->get_product(); // Get the WC_Product Object
$price = $product->get_price();
error_log( $price );
error_log( print_r( $order_item, true ) );
}

应该会更好。


您还可以使用以下方法(将项目小计除以数量):

foreach ( $order->get_items() as $item ) {
$quantity = $item->get_quantity(); // Quantity
$subtotal = $item->get_subtotal(); // Line subtotal
$subtotal_tax = $item->get_subtotal_tax(); // Line subtotal tax

$price_excl_tax = $subtotal / $quantity;
$price_incl_tax = ( $subtotal + $subtotal_tax ) / $quantity
error_log( 'Price without tax: ' . $price_excl_tax );
error_log( 'Price with tax: ' . $price_incl_tax );
}

关于php - WooCommerce 获取订单商品单一价格(无数量乘法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63997718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com