Я добавил 2 переключателя - опция A и опция B, над итогами корзины на странице корзины.Я хочу обновить итоги корзины при изменении этих кнопок (таким же образом, когда мы выбираем способ доставки, он обновляет итоги).
Я создал собственную конечную точку WC_Ajax.
$(document).on('change','input[name="custom_option"]',
function() {
var data = {
total : 50,
post_data: $('.woocommerce-cart-form').serialize(),
security: wc_cart_params.update_custom_cart_nonce,
//action:'update_custom_cart'
};
$.ajax({
type: 'post',
url : wc_cart_params.wc_ajax_url.toString().replace(
'%%endpoint%%','update_custom_cart' ),
data: data,
dataType: 'html',
success: function( response ) {
$( '.cart_totals' ).replaceWith( response );
// $( document.body ).trigger( 'wc_update_cart' );
}
});
});
Вот моя PHP-функция ajax:
public static function update_custom_cart() {
check_ajax_referer( 'update-custom-cart', 'security' );
$cart_subtotal = WC()->session->get( 'cart_totals' );
$cart_subtotal['subtotal'] = '50';
$cart_subtotal['total'] = '50';
$cart_subtotal['cart_contents_total'] = '50';
WC()->session->set( 'cart_totals', $cart_subtotal );
WC()->cart->set_totals( WC()->session->get( 'cart_totals' )
);
woocommerce_cart_totals();
wp_die();
}
Это неправильное решение.Как еще я могу это реализовать?