You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WooCommerce订阅商品自定义Ajax加购无法识别一次性套餐、$button未定义求助

问题1:无法识别一次性购买参数的解决方法

你当前的AJAX请求仅提交了product_id参数,没有携带链接中控制购买类型的convert_to_sub_55337=0参数,WooCommerce Subscription插件未收到该参数时会默认加购订阅套餐。你需要完整解析链接中的所有查询参数,统一提交给加购接口。

问题2:Uncaught TypeError: $button is undefined报错的解决方法

WooCommerce原生added_to_cart事件触发要求传入3个参数:response.fragments、response.cart_hash、触发加购的按钮对象,你当前只传了前两个参数,导致WooCommerce内置的事件监听逻辑找不到对应的$button变量抛出异常。

另外你原代码中if (response.error & response.product_url)使用了位运算符&,应该替换为逻辑与运算符&&避免逻辑判断异常。


修正后完整代码

(function($) {
    $(document).on('click', '.testing', function(e) {
        var $thisbutton = $(this);
        var href_str = $thisbutton.prop('href');
        
        try {
            var url_obj = new URL(href_str);
            var search_params = url_obj.searchParams;
            if (!search_params.has('add-to-cart')) return;
        } catch (err) {
            return;
        }

        e.preventDefault();

        // 完整解析所有查询参数
        var data = {};
        search_params.forEach(function(value, key) {
            data[key] = value;
        });

        $(document.body).trigger('adding_to_cart', [$thisbutton, data]);

        $.ajax({
            type: 'post',
            url: wc_add_to_cart_params.wc_ajax_url.replace(
                '%%endpoint%%',
                'add_to_cart'
            ),
            data: data,
            beforeSend: function() {
                $thisbutton.removeClass('added').addClass('loading');
            },
            complete: function() {
                $thisbutton.addClass('added').removeClass('loading');
            },
            success: function(response) {
                if (response.error && response.product_url) {
                    window.location = response.product_url;
                    return;
                } else {
                    // 新增第三个参数传入按钮对象,解决$button未定义报错
                    $(document.body).trigger('added_to_cart', [
                        response.fragments,
                        response.cart_hash,
                        $thisbutton
                    ]);

                    $('a[data-notification-link="cart-overview"]').click();
                }
            }
        });

        return false;
    });
})(jQuery);

内容的提问来源于stack exchange,提问作者user6684898

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 09:33:00