【问题标题】:WooCommerce Fragment Update total items / subtotal / totalWooCommerce 片段更新总项目/小计/总计
【发布时间】:2019-09-10 00:26:42
【问题描述】:

我正在使用 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 );

【问题讨论】:

标签: ajax woocommerce


【解决方案1】:

经过一些进一步的研究,我通过将每个片段更新分离到自己的函数中来实现这一点。另外,使用ob_start()ob_get_clean()

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 );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-09
    相关资源
    最近更新 更多