Я пытаюсь добавить поле количества в миникарту woocommerce.
1. Я добавил это в файл wooocommerce mini-cart.php:
echo apply_filters( 'woocommerce_loop_add_to_cart_link',
sprintf( '<a rel="nofollow" href="%s" data-quantity="%s" data-product_id="%s" data-product_sku="%s" class="%s add_to_cart_button">%s</a>',
esc_url( $_product->add_to_cart_url() ),
esc_attr( isset( $quantity ) ? $quantity : 1 ),
esc_attr( $product_id ),
esc_attr( $_product->get_sku() ),
esc_attr( isset( $class ) ? $class : 'button' ),
esc_html( $_product->add_to_cart_text() )
),
$_product );
Добавляет кнопки «плюс» и «минус» вокруг введенного количества.
Когда нажал на кнопку плюс : я просто назвал add-to-cart для этого продукта, так что количество увеличивается на 1. Это работает нормально.
$(document).on('click', '.woocommerce-mini-cart .plus', function(){
$(this).closest('form.cart').find('a.add_to_cart_button').click();
});
Выпуск : Когда нажал кнопку минус : я пытаюсь понять, как изменить количество в корзине для этого продукта.
Я попытался вызвать ajax, чтобы получить WC () -> cart () и изменить значение в нем, но он возвращает пустой массив.
$(document).on('click', '.woocommerce-mini-cart .minus', function(){
var data = {
'product_id': 1234,
'action': 'update_cart_qty'
};
jQuery.post('<?php echo admin_url('admin-ajax.php'); ?>', data, function(response) {
alert('Got this from the server: ' + response);
});
});
add_action( 'wp_ajax_update_cart_qty', 'func_update_cart_qty' );
add_action( 'wp_ajax_nopriv_update_cart_qty', 'func_update_cart_qty' );
function func_update_cart_qty(){
print_r(WC()->cart->get_cart()); // <- Empty Array
}
Может кто-нибудь подсказать, как получить эту работу?