This website uses cookies to personalize your experience. By using this website you agree to our cookie policy.

Reply To: Add to cart for a specific form

#52632
Ernest MarcinkoErnest Marcinko
Keymaster

Oh, it was you indeed, I didn’t even notice I’m so sorry.

In that case, this must be adjusted from the script, maybe it’s possible with just a tiny bit of modification.

I have made an issue request on this one. It’s basically almost there, so it needs a bit of work and testing, but I’m sure it’s only missing something tiny for the quantity to work. It’s going to be added in the upcoming release within 2 weeks.

Until then, can you please try this modified script version:

jQuery(function (t) {
	if ("undefined" == typeof wc_add_to_cart_params) return !1;
	var a = function () {
		t(".asp_r")
			.on("click", ".add_to_cart_button", this.onAddToCart)
			.on("click", ".remove_from_cart_button", this.onRemoveFromCart)
			.on("added_to_cart", this.updateButton)
			.on("added_to_cart", this.updateCartPage)
			.on("added_to_cart removed_from_cart", this.updateFragments);
	};
	(a.prototype.onAddToCart = function (a) {
		var o = t(this);
		if (o.is(".ajax_add_to_cart")) {
			if (!o.attr("data-product_id")) return !0;
			a.preventDefault(), o.removeClass("added"), o.addClass("loading");
			var r = {};
			r.quantity = parseInt( o.closest('.woocommerce').find('input[name=quantity]').val() || 1 );
			t.each(o.data(), function (t, a) {
				r[t] = a;
			}),
				t(document.body).trigger("adding_to_cart", [o, r]),
				t.post(wc_add_to_cart_params.wc_ajax_url.toString().replace("%%endpoint%%", "add_to_cart"), r, function (a) {
					a &&
					(a.error && a.product_url
						? (window.location = a.product_url)
						: "yes" !== wc_add_to_cart_params.cart_redirect_after_add
							? t(document.body).trigger("added_to_cart", [a.fragments, a.cart_hash, o])
							: (window.location = wc_add_to_cart_params.cart_url));
				});
		}
	}),
		(a.prototype.onRemoveFromCart = function (a) {
			var o = t(this),
				r = o.closest(".woocommerce-mini-cart-item");
			a.preventDefault(),
				r.block({ message: null, overlayCSS: { opacity: 0.6 } }),
				t
					.post(wc_add_to_cart_params.wc_ajax_url.toString().replace("%%endpoint%%", "remove_from_cart"), { cart_item_key: o.data("cart_item_key") }, function (a) {
						a && a.fragments ? t(document.body).trigger("removed_from_cart", [a.fragments, a.cart_hash, o]) : (window.location = o.attr("href"));
					})
					.fail(function () {
						window.location = o.attr("href");
					});
		}),
		(a.prototype.updateButton = function (a, o, r, e) {
			(e = void 0 !== e && e) &&
			(e.removeClass("loading"),
				e.addClass("added"),
			wc_add_to_cart_params.is_cart ||
			0 !== e.parent().find(".added_to_cart").length ||
			e.after(' <a href="' + wc_add_to_cart_params.cart_url + '" class="added_to_cart wc-forward" title="' + wc_add_to_cart_params.i18n_view_cart + '">' + wc_add_to_cart_params.i18n_view_cart + "</a>"),
				t(document.body).trigger("wc_cart_button_updated", [e]));
		}),
		(a.prototype.updateCartPage = function () {
			var a = window.location.toString().replace("add-to-cart", "added-to-cart");
			t(".shop_table.cart").load(a + " .shop_table.cart:eq(0) > *", function () {
				t(".shop_table.cart").stop(!0).css("opacity", "1").unblock(), t(document.body).trigger("cart_page_refreshed");
			}),
				t(".cart_totals").load(a + " .cart_totals:eq(0) > *", function () {
					t(".cart_totals").stop(!0).css("opacity", "1").unblock(), t(document.body).trigger("cart_totals_refreshed");
				});
		}),
		(a.prototype.updateFragments = function (a, o) {
			o &&
			(t.each(o, function (a) {
				t(a)
					.addClass("updating")
					.fadeTo("400", "0.6")
					.block({ message: null, overlayCSS: { opacity: 0.6 } });
			}),
				t.each(o, function (a, o) {
					t(a).replaceWith(o), t(a).stop(!0).css("opacity", "1").unblock();
				}),
				t(document.body).trigger("wc_fragments_loaded"));
		}),
		new a();
});