Шаг ввода пользовательского количества на основе категории продукта WooCommercePhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Шаг ввода пользовательского количества на основе категории продукта WooCommerce

Сообщение Anonymous »

Я пытался заставить десятичные числа работать в WooCommerce, и не понимаю, почему это не работает.
Код моего плагина (см. ниже) успешно разрешает ввод данных должно быть десятичным числом с шагом 0,5, как и ожидалось для всех продуктов в категории «Ткани». Все идет нормально. Это также позволяет обновлять количество в корзине с шагом 0,5.
Однако, когда я добавляю в корзину продукт с дробным количеством или нажимаю «Обновить» в корзине после изменения количество до дробного числа, добавленная сумма в любом случае является целым числом. Я знаю это, потому что добавление 2,5, например, все равно приводит к тому, что в общей сложности цена в корзине будет равна 2 * (а также в корзине будет отображаться только 2 товара). (Кроме того, когда мы нажимаем «Добавить в корзину» с количеством 2,5, в уведомлении говорится: «В корзину добавлено 2 товара».)
Значит, где-то мне не хватает какой-то настройки или кода, который фактически принимает выбранное дробное количество без его усечения. У кого еще возникла эта проблема? Все, что я могу найти в Интернете, это то, что приведенный ниже код должен работать.
Спасибо за любую помощь, которую вы можете предоставить.
Вот мой код, в значительной степени основанный на о других решениях на этом сайте:
(я использую Wordpress 6.5.2)
// Removes the WooCommerce filter, that is validating the quantity to be an int
remove_filter('woocommerce_stock_amount', 'intval');

// Add a filter, that validates the quantity to be a float
add_filter('woocommerce_stock_amount', 'floatval');

// Add min value to the quantity field (default = 1)
add_filter('woocommerce_quantity_input_min', 'min_decimal');
function min_decimal($val) {
return 1;
}

// Add step value to the quantity field (default = 1)
add_filter('woocommerce_quantity_input_step', 'step_decimal', 10, 2);
function step_decimal($val, $product) {

$product_id = $product->get_id();

if (has_term('Fabric','product_cat', $product_id)) {
return 0.5;
}

return 1.0;
}


Подробнее здесь: https://stackoverflow.com/questions/784 ... t-category
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»