Woocommerce添加到购物车Ajax功能不适用于ajax

时间:2017-06-23 05:41:19

标签: jquery wordpress woocommerce

我启用了woocommerce ajax添加到购物车功能,但它无法正常工作。它正在加载而不是ajax调用。这是我的ajax-add-to-cart.js代码:

/*!
 * WooCommerce Add to Cart JS
 */
jQuery(function(a) {
    if ("undefined" == typeof wc_add_to_cart_params) return !1;
    a(document).on("click", ".add_to_cart_button", function() {
        var t = a(this);
        if (t.is(".ajax_add_to_cart")) {
            if (!t.attr("data-product_id")) return !0;
            t.removeClass("added"), t.addClass("loading");
            var r = {};
            return a.each(t.data(), function(a, t) {
                r[a] = t
            }), a(document.body).trigger("adding_to_cart", [t, r]), a.post(wc_add_to_cart_params.wc_ajax_url.toString().replace("%%endpoint%%", "add_to_cart"), r, function(r) {
                r && (r.error && r.product_url ? window.location = r.product_url : "yes" !== wc_add_to_cart_params.cart_redirect_after_add ? a(document.body).trigger("added_to_cart", [r.fragments, r.cart_hash, t]) : window.location = wc_add_to_cart_params.cart_url)
            }), !1
        }
        return !0
    }), a(document.body).on("added_to_cart", function(t, r, d, o) {
        var c = window.location.toString().replace("add-to-cart", "added-to-cart");
        (o = void 0 !== o && o) && o.removeClass("loading"), r && a.each(r, function(t) {
            a(t).addClass("updating")
        }), a(".shop_table.cart, .updating, .cart_totals").fadeTo("400", "0.6").block({
            message: null,
            overlayCSS: {
                opacity: .6
            }
        }), o && (o.addClass("added"), wc_add_to_cart_params.is_cart || 0 !== o.parent().find(".added_to_cart").length || o.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>")), r && (a.each(r, function(t, r) {
            a(t).replaceWith(r)
        }), a(document.body).trigger("wc_fragments_loaded")), a(".widget_shopping_cart, .updating").stop(!0).css("opacity", "1").unblock(), a(".shop_table.cart").load(c + " .shop_table.cart:eq(0) > *", function() {
            a(".shop_table.cart").stop(!0).css("opacity", "1").unblock(), a(document.body).trigger("cart_page_refreshed")
        }), a(".cart_totals").load(c + " .cart_totals:eq(0) > *", function() {
            a(".cart_totals").stop(!0).css("opacity", "1").unblock()
        })
    })
});

1 个答案:

答案 0 :(得分:0)

我也遇到过这个问题。终于得到了解决方案。 WooCommerce已删除&#39; wc_add_to_cart_params&#39;对象和已删除的新对象&#39; wc_cart_fragments_params&#39; 还有一个问题,对于完整的网站/ ajax网址, 你必须使用:

var ajax_url: 'http://example.com' + wc_cart_fragments_params.ajax_url;

我希望:你将能够解决问题。 感谢