В WooCommerce в корзине можно изменять кол-во товаров, мне нужно сделать тоже самое, но в модальном окне при добавление.
Я что-то собрал из того, что взял в корзине, получилось следующие.
<form class="woocommerce-cart-form" action="<?php echo esc_url(wc_get_cart_url()); ?>" method="post">
<div class="shop_table_responsive cart woocommerce-cart-form__contents">
<?php
foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
if($cart_item['data']->get_id() == $product->id)
{
$_product = apply_filters('woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key); ?>
<div class="row cart_product_row woocommerce-cart-form__cart-item <?php echo esc_attr(apply_filters('woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key)); ?>">
<div class="product-quantity" data-title="<?php esc_attr_e('Quantity', 'woocommerce'); ?>">
<?php
if ($_product->is_sold_individually()) {
$product_quantity = sprintf('1 <input type="hidden" name="cart[%s][qty]" value="1" />', $cart_item_key);
} else {
echo '<div class = "on_small" style="font-size: 14px; color: #b0b0b0; margin-bottom: 10px; font-weight: 400;">Количество</div >';
$product_quantity = woocommerce_quantity_input(
array(
'input_name' => "cart[{$cart_item_key}][qty]",
'input_value' => $cart_item['quantity'],
'max_value' => $_product->get_max_purchase_quantity(),
'min_value' => '0',
'product_name' => $_product->get_name(),
),
$_product,
false
);
}
echo apply_filters('woocommerce_cart_item_quantity', $product_quantity, $cart_item_key, $cart_item); // PHPCS: XSS ok.
}
}
?>
</div>
</div>
<div class="row cart_product_row coupon_row">
<div class="col-12">
<button type="submit" class="button green_btn mt-5" name="update_cart" value="<?php esc_attr_e('Update cart', 'woocommerce'); ?>"><?php esc_html_e('Update cart', 'woocommerce'); ?></button>
<?php wp_nonce_field('woocommerce-cart', 'woocommerce-cart-nonce'); ?>
</div>
</div>
</div>
</form>
Вот только проблема в следующем.
В корзине, когда мы написали какую-то цифру (сколько товаров выбираем), он сам отправляет запрос и обновляет. А у меня запрос сам не отправляется, только если вручную нажать на кнопку "обновить".
В корзине кнопка скрыта, но она как-та сама нажимается. Если её удалить, ничего происходить не будет.
У меня эта кнопка автоматически не пропадает, на неё нужно нажимать.