当前使用以下代码对显示价格进行四舍五入,但是创建的定单和所有定单电子邮件未对总数进行四舍五入。在下订单后不还原的每个订单上,有什么办法保留舍入数字?
add_filter( 'woocommerce_calculated_total', 'round_price_product'
);
function round_price_product( $price ){
// Return rounded price
return round( $price );
}
谢谢
答案 0 :(得分:0)
可以使用woocommerce_get_formatted_order_total过滤器挂钩四舍五入来完成订单总价,然后将其格式化为显示在订单总行上:
add_filter( 'woocommerce_get_formatted_order_total', 'round_formatted_order_total', 10, 2 );
function round_formatted_order_total( $formatted_total, $order ) {
$formatted_total = wc_price( round( $order->get_total() ), array( 'currency' => $order->get_currency() ) );
return $formatted_total;
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试和工作。
或者,如果需要四舍五入所有“订单总数”,则可以使用woocommerce_get_order_item_totals
挂钩,在此必须四舍五入所有需要的行。
在下面的示例中,小计行和总数行将被四舍五入:
add_filter( 'woocommerce_get_order_item_totals', 'rounded_formatted_order_totals', 10, 3 );
function rounded_formatted_order_totals( $total_rows, $order, $tax_display ) {
$tax_display = $tax_display ? $tax_display : get_option( 'woocommerce_tax_display_cart' );
// For subtotal line
if ( isset( $total_rows['cart_subtotal'] ) ) {
$subtotal = 0;
foreach ( $order->get_items() as $item ) {
$subtotal += $item->get_subtotal();
if ( 'incl' === $tax_display ) {
$subtotal += $item->get_subtotal_tax();
}
}
$subtotal = wc_price( round( $subtotal ), array( 'currency' => $order->get_currency() ) );
if ( 'excl' === $tax_display && $this->get_prices_include_tax() ) {
$subtotal .= ' <small class="tax_label">' . WC()->countries->ex_tax_or_vat() . '</small>';
}
$total_rows['cart_subtotal']['value'] = $subtotal;
}
// For total line
if ( isset( $total_rows['order_total'] ) ) {
$total = wc_price( round( $order->get_total() ), array( 'currency' => $order->get_currency() ) );
$total_rows['order_total']['value'] = $total;
}
return $total_rows;
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试和工作。