更新订单后如何防止四舍五入的woocommerce订单的总值变回非四舍五入的数字

时间:2018-07-12 02:15:39

标签: wordpress woocommerce rounding

我想将订单的总价格四舍五入为0.05,因此我在functions.php中添加了一些代码:

function custom_calculated_total( $total ) {
return round( $total * 2, 1) / 2;
}
add_filter( 'woocommerce_calculated_total', 'custom_calculated_total' );

它在购物车和结帐时效果很好,将总计显示为四舍五入。

但是,在管理客户订单的后端,每当管理员单击订单中的更新按钮或更新按钮上方的箭头时,总数就会变回非四舍五入的数字。

You can view the update button and the arrow button here.

因此,每当我们要打印将导致订单更新的发票时,总金额将更改回订单和发票中的未四舍五入的数字。

我尝试了其他类似的编码,但结果保持不变。 更新订单后,我该怎么做才能防止订单总数变回非四舍五入的数字?

2 个答案:

答案 0 :(得分:0)

您可以舍入该表的非常具体的输出,如下所示:

add_filter( 'woocommerce_cart_totals_order_total_html', 'round_my_total', 99, 1);
    function round_my_total($value ){
       return round( WC()->cart->get_total(false), 1);
    }

编辑 为了更改“ get_total()”的每个位置,可以使用以下过滤器:

add_filter( 'woocommerce_cart_total', 'round_get_total', 99, 1);
function round_get_total($value ){
    $value = str_replace(get_woocommerce_currency_symbol(), '', strip_tags($value));
    return (round($value * 1, 1));
}

答案 1 :(得分:0)

另一种方法(不确定您之前是否检查过)是使用WooCommerce内置选项。 (我尚未在发票等上对其进行测试。)

enter image description here