Ajax Add to cart Woocommece WP

JQuery Ajax Add to cart Woocommece WP

Bài viết kết hợp: Thêm giỏ hàng và redirect ( add to cart 2nd)

Function in theme

function crispshop_add_cart_single_ajax() {
	$product_id = $_POST['product_id'];
	$variation_id = $_POST['variation_id'];
	$quantity = $_POST['quantity'];

	if ($variation_id) {
		WC()->cart->add_to_cart( $product_id, $quantity, $variation_id );
	} else {
		WC()->cart->add_to_cart( $product_id, $quantity);
	}
}

add_action('wp_ajax_crispshop_add_cart_single', 'crispshop_add_cart_single_ajax');
add_action('wp_ajax_nopriv_crispshop_add_cart_single', 'crispshop_add_cart_single_ajax');

JQuery function

jQuery('.single_add_to_cart_button').click(function(e) {
	e.preventDefault();
	jQuery(this).addClass('adding-cart');
	var product_id = jQuery(this).val();
	var variation_id = jQuery('input[name="variation_id"]').val();
	var quantity = jQuery('input[name="quantity"]').val();
	console.log(quantity);
	
/**
	jQuery("#nhc-overlay").css("display", "block");
 
**/
	
	if (variation_id != '') {
		jQuery.ajax ({
			url: crispshop_ajax_object.ajax_url,
			type:'POST',
			data:'action=crispshop_add_cart_single&product_id=' + product_id + '&variation_id=' + variation_id + '&quantity=' + quantity,

			success:function(results) {
				/**
				jQuery('.cart-dropdown-inner').append(results);
				var cartcount = jQuery('.item-count').html();
				jQuery('.cart-items-count').html(cartcount);
				jQuery('.single_add_to_cart_button').removeClass('adding-cart');
				**/
				jQuery('html, body').animate({ scrollTop: 0 }, 'slow');							
				setTimeout(function () {		
				jQuery("#nhc-overlay").css("display", "none");
				}, 1800);    
	 
			}
		});
	} else {
		jQuery.ajax ({
			url: crispshop_ajax_object.ajax_url,  
			type:'POST',
			data:'action=crispshop_add_cart_single&product_id=' + product_id + '&quantity=' + quantity,
			success:function(results) {
				jQuery('html, body').animate({ scrollTop: 0 }, 'slow');	
				setTimeout(function () {		
				jQuery("#nhc-overlay").css("display", "none");
				}, 1800);    
			}
		});
	}
});

end