Я использую Woocommerce для проекта и хочу, чтобы люди могли заказывать продукты с десятичным значением.
Теперь я довольно легко исправил эту проблему с помощью этого кода:
add_filter('woocommerce_quantity_input_min', 'min_decimal');
function min_decimal($val) {
return 0.5;
}
add_filter('woocommerce_quantity_input_step', 'nsk_allow_decimal');
function nsk_allow_decimal($val) {
return 0.5;
}
remove_filter('woocommerce_stock_amount', 'intval');
add_filter('woocommerce_stock_amount', 'floatval');
Однако по какой-то причине HTML на сайте выводит значения с запятыми вместо точек, например:
<input id="quantity_5a66016934e7b" class="input-text qty text" step="0,5" min="0,5" max="" name="quantity" value="1" title="Aantal" size="4" pattern="" inputmode="" type="number">
Который явно не работает, так как он использует запятые вместо точек. Однако я понятия не имею, что вызывает это. Я уже настроил свой глобальный разделитель в WooCommerce на период, когда думал, что это будет проблемой, но это не так.
Есть идеи, что может быть причиной этой проблемы?
Я проверил ваш код, и он работает нормально, даже если в поле вместо точки отображается кома.
При взгляде на исходный код значение в поле задается точкой, но дисплеи показывают, что с комой.
Ниже вы можете нажать на «Выполнить фрагмент кода» кнопку, и вы увидите:
<div class="quantity">
<label class="screen-reader-text" for="quantity_5a660e741bc2f">Quantity</label>
<input type="number" id="quantity_5a660e741bc2f" class="input-text qty text" step="0.5" min="0.5" max="506" name="quantity" value="0.5" title="Qty" size="4" pattern="[0-9.]*" inputmode="numeric">
</div>
Других решений пока нет …