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

调用WC()函数添加商品至购物车报错:函数未定义,如何解决?

问题分析与解决方法

报错原因

  • WooCommerce加载时机滞后:子主题的custom_functions.php在WordPress初始化早期就被加载,此时WooCommerce核心函数还未完成初始化,直接调用WC()自然会提示“未定义函数”。
  • AJAX调用方式错误:你直接在custom_functions.php中写入执行代码,没有通过WordPress的AJAX钩子机制触发,导致代码在不具备完整WooCommerce运行环境的情况下执行。

解决方案

1. 正确挂载AJAX回调函数

在子主题的functions.php中注册AJAX动作,并将添加商品的逻辑封装到回调函数里,确保代码在WooCommerce加载完成后执行:

// 登录用户可触发的AJAX动作
add_action('wp_ajax_add_product_to_cart', 'custom_add_product_to_cart');
// 未登录用户可触发的AJAX动作
add_action('wp_ajax_nopriv_add_product_to_cart', 'custom_add_product_to_cart');

function custom_add_product_to_cart() {
    // 先检查WooCommerce是否已加载
    if (!function_exists('WC')) {
        wp_send_json_error('WooCommerce未完成初始化');
        wp_die();
    }

    $product_id = 204;
    $quantity = 1;

    // 执行添加购物车操作
    $added_status = WC()->cart->add_to_cart($product_id, $quantity);

    if ($added_status) {
        wp_send_json_success('商品已成功加入购物车');
    } else {
        wp_send_json_error('商品添加失败,请检查商品ID是否有效');
    }

    wp_die(); // 必须终止AJAX请求
}

2. 前端AJAX请求调整

确保前端通过WordPress的AJAX接口发起请求,而不是直接调用主题文件:

jQuery(document).ready(function($) {
    // 示例:点击按钮触发添加操作
    $('.add-to-cart-trigger').on('click', function(e) {
        e.preventDefault();

        $.ajax({
            url: ajaxurl, // WordPress全局变量,自动指向后台AJAX接口
            type: 'POST',
            data: {
                action: 'add_product_to_cart' // 与PHP中注册的动作名保持一致
            },
            success: function(res) {
                if (res.success) {
                    alert(res.data);
                    // 触发购物车片段刷新,更新页面购物车显示
                    $(document.body).trigger('wc_fragment_refresh');
                } else {
                    alert(res.data);
                }
            },
            error: function() {
                alert('请求出错,请稍后重试');
            }
        });
    });
});

3. 清理错误代码

把custom_functions.php里直接写的WC()->cart->add_to_cart(204)删掉,避免文件加载时触发致命错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 05:10:13