Вы можете использовать функцию PHP round (вместо ceil
), которая имеет параметр $precision
, который можно установить на 1
. Это округлит до точности шкафов, которая для 9.555
равна 9.6
:
/**
* Round off decimals for coupons
**/
function filter_woocommerce_coupon_get_discount_amount( $discount,
$discounting_amount, $cart_item, $single, $instance ) {
$discount = round( $discount, 1 );
return $discount;
}
add_filter( 'woocommerce_coupon_get_discount_amount',
'filter_woocommerce_coupon_get_discount_amount', 10, 5 );
Если вы хотите преобразовать 9.555
в 9.9
, то вам придется создать эту логику c, например, вот так:
/**
* Round off decimals for coupons
**/
function filter_woocommerce_coupon_get_discount_amount( $discount,
$discounting_amount, $cart_item, $single, $instance ) {
$disvount_floor = floor($discount);
// This will return x.99 if $discount decimal number is > 0.5
if (fmod($discount, $disvount_floor) > 0.5) {
return "{$disvount_floor}.9";
}
return $discount;
}
add_filter( 'woocommerce_coupon_get_discount_amount',
'filter_woocommerce_coupon_get_discount_amount', 10, 5 );