То, что вы спрашиваете, является реальной разработкой, слишком широкой для stackOverFlow.Вы не можете заставить его работать так, как оно есть на самом деле по многим причинам:
- В вашем коде есть некоторые ошибки, касающиеся переменных аргументов хука ...
- Вы не можете иметькнопка отправки для каждого поля количества количества, и вы не можете иметь также
<form>
для каждого элемента корзины: если вы посмотрите на странице корзины, есть только одна кнопка, которая обновляет все изменения количеств через ajax (и только однуформа для всех позиций корзины) . - Обновление количества: Кнопка обновления должна быть необходима для всех элементов корзины или поведения, которое будет обновлять каждое количество при изменении ввода.
- Требуется Ajax для обновления количеств и обновления фрагментов корзины, так что это что-то сложное, требующее jQuery, Wordpress Ajax…
Теперь, чтобы отобразить поля количества, вы можетеиспользуйте следующее (внесение некоторых изменений в правила CSS - стилизация) :
add_filter( 'woocommerce_widget_cart_item_quantity', 'add_minicart_quantity_fields', 10, 3 );
function add_minicart_quantity_fields( $html, $cart_item, $cart_item_key ) {
$product_price = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $cart_item['data'] ), $cart_item, $cart_item_key );
return woocommerce_quantity_input( array('input_value' => $cart_item['quantity']), $cart_item['data'], false ) . $product_price;
}
Код находится в файле function.php вашей активной дочерней темы (или активной темы).Проверено и работает только для отображения.
Вам понадобится намного больше кода и изменений, чтобы это заработало.Вы можете попробовать WooCommerce Better Usability плагин.
См .: Woocommerce Mini Cart Widget Изменение количества