Ajax 更新项目总数/小计/总计

Ajax 更新项目总数/小计/总计,ajax,woocommerce,Ajax,Woocommerce,我正在使用Ajax将项目添加到购物车中,并尝试使用以下代码更新WooCommerce片段,以便项目计数、小计和总计保持同步(无需页面刷新)。但是,除了内容计数之外,下面的操作不起作用,但即使这样也是非常间歇的 我错过什么了吗 function ajaxify_fragments( $fragments ) { // Update cart count fragment $fragments['.cart-items-total td'] = WC()->cart->

我正在使用Ajax将项目添加到购物车中,并尝试使用以下代码更新WooCommerce片段,以便项目计数、小计和总计保持同步(无需页面刷新)。但是,除了内容计数之外,下面的操作不起作用,但即使这样也是非常间歇的

我错过什么了吗

function ajaxify_fragments( $fragments ) {

    // Update cart count fragment
    $fragments['.cart-items-total td'] = WC()->cart->get_cart_contents_count();

    // Update cart subtotal fragment
    $fragments['.cart-total td'] = WC()->cart->get_cart_subtotal();

    // Update cart total fragment
    $fragments['.cart-total td'] = WC()->cart->get_cart_total();

    return $fragments;
}
add_filter( 'woocommerce_add_to_cart_fragments', 'ajaxify_fragments', 10, 1 );

在进一步研究之后,我将每个片段更新分离为自己的函数,从而实现了这一点。另外,使用
ob\u start()
ob\u get\u clean()

函数ajaxify\u cart\u count\u fragments($fragments){
//打开输出缓冲
ob_start();
//内容
echo'.WC()->cart->get_cart_contents_count()';
//用新内容更新片段
$fragments['.cart items total td']=ob_get_clean();
返回$fragments;
}
添加过滤器('woocommerce\u add\u to\u cart\u fragments'、'ajaxify\u cart\u count\u fragments',10,1);
函数ajaxify\u小计\u片段($fragments){
//内容
回显'.WC()->cart->get_cart_subtotal()';
//用新内容更新片段
$fragments['.cart total td']=WC()->cart->get_cart_subtotal();
返回$fragments;
}
添加过滤器('woocommerce'u add'u to'u cart\u fragments'、'ajaxify\u subtotal\u fragments',10,1);
function ajaxify_cart_count_fragments( $fragments ) {

    // Turn on output buffering
    ob_start();

    // Content
    echo '<td data-title="Items">' . WC()->cart->get_cart_contents_count() . '</td>';

    // Update fragment with new content
    $fragments['.cart-items-total td'] = ob_get_clean();
    return $fragments;
}
add_filter( 'woocommerce_add_to_cart_fragments', 'ajaxify_cart_count_fragments', 10, 1 );

function ajaxify_subtotal_fragments( $fragments ) {

    // Content
    echo '<td data-title="Subtotal">' . WC()->cart->get_cart_subtotal() . '</td>';

    // Update fragment with new content
    $fragments['.cart-total td'] = WC()->cart->get_cart_subtotal();
    return $fragments;
}
add_filter( 'woocommerce_add_to_cart_fragments', 'ajaxify_subtotal_fragments', 10, 1 );