📅  最后修改于: 2023-12-03 15:27:01.788000             🧑  作者: Mango
本文将介绍如何在 WooCommerce 中,使用 Sumit 在商品添加到购物车时自动刷新页面,让用户更直观地看到购物车的变化。
add_action( 'wp_ajax_nopriv_sumit_woocommerce_refresh_cart', 'sumit_woocommerce_refresh_cart' );
add_action( 'wp_ajax_sumit_woocommerce_refresh_cart', 'sumit_woocommerce_refresh_cart' );
function sumit_woocommerce_refresh_cart() {
ob_start();
do_action( 'woocommerce_before_cart' );
include plugin_dir_path( __FILE__ ) . 'woocommerce/cart/cart.php';
do_action( 'woocommerce_after_cart' );
$html = ob_get_clean();
wp_send_json_success( array(
'cart_html' => $html,
) );
}
function sumitAddToCartOnSuccess(responseText, statusText, xhr, $form) {
var $fragment_refresh = {
url: wc_cart_fragments_params.ajax_url,
type: 'POST',
data: { action: 'sumit_woocommerce_refresh_cart' },
success: function( data ) {
if ( data && data.fragments ) {
jQuery.each( data.fragments, function( key, value ) {
jQuery( key ).replaceWith( value );
});
}
}
};
$.ajax( $fragment_refresh );
}
<form class="cart" method="post" enctype="multipart/form-data" action="<?php echo esc_url( $product->add_to_cart_url() ); ?>" data-sumit-success-action="sumitAddToCartOnSuccess">
这样,在商品添加到购物车时,会自动调用 sumitAddToCartOnSuccess
函数,并用 AJAX 请求获取新的购物车 HTML,并更新页面。
使用 Sumit 和 WooCommerce,可以方便地实现商品添加到购物车后自动刷新页面,让用户更直观地看到购物车的变化。