在woocommerce中以编程方式将产品添加到购物车

在woocommerce中以编程方式将产品添加到购物车,woocommerce,Woocommerce,我使用functions.php中的函数通过ajax添加产品,该函数如下所示: function es_add_to_cart() { global $woocommerce; $product_id = $_GET['product_id']; $woocommerce->cart->add_to_cart( $product_id ); die ( /*returns updated shopping cart */ ); }

我使用functions.php中的函数通过ajax添加产品,该函数如下所示:

function es_add_to_cart()
{       
    global $woocommerce;

    $product_id = $_GET['product_id'];
    $woocommerce->cart->add_to_cart( $product_id );

    die ( /*returns updated shopping cart */ );
}
function es_add_to_cart()
{       
    global $woocommerce;

    $product_id = $_GET['product_id'];
    $woocommerce->cart->add_to_cart( $product_id );

    $woocommerce->cart->maybe_set_cart_cookies();

    die ( /*returns updated shopping cart */ );
}

这是可行的,并且项目会被添加,但只有当购物车已经包含项目时,这让我相信我需要检查是否已经有购物车,如果没有,则创建一个新的购物车。但是,我在文档中找不到任何相关信息。

以下是解决此问题的方法,运行$woocommerce->cart->maybe\u set\u cart\u cookies;添加任何项后,相同的函数如下所示:

function es_add_to_cart()
{       
    global $woocommerce;

    $product_id = $_GET['product_id'];
    $woocommerce->cart->add_to_cart( $product_id );

    die ( /*returns updated shopping cart */ );
}
function es_add_to_cart()
{       
    global $woocommerce;

    $product_id = $_GET['product_id'];
    $woocommerce->cart->add_to_cart( $product_id );

    $woocommerce->cart->maybe_set_cart_cookies();

    die ( /*returns updated shopping cart */ );
}