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