Используйте форму на странице корзины, чтобы определить размер комиссии. Мне нужно изменить общую цену после обновления и записать в регистр ca sh.
jquery ajax:
function rn_refresh_shipping(rn_pocet){
$.ajax(
{
url:"<?php echo admin_url('admin-ajax.php'); ?>",
type:"POST",
data: {action:"rn_refresh_action","rn_pocet":rn_pocet},
success: function(response) {
if(response){
console.log(response);
$("[name='update_cart']").removeAttr('disabled');
$("[name='update_cart']").trigger("click");
}else{
}
}
});
}
php:
function rn_refresh_action_function(){
$rn_pocet=$_REQUEST['rn_pocet'];
global $woocommerce;
$cart=$woocommerce->cart;
session_start();
$_SESSION['rn_fee']=$rn_pocet;
do_action( 'woocommerce_cart_calculate_fees',$cart,'Poplatek za doručení do bytux');
wp_die();
}
add_action( 'wp_ajax_rn_refresh_action', 'rn_refresh_action_function' );
add_action( 'wp_ajax_nopriv_rn_refresh_action', 'rn_refresh_action_function' );
add_action( 'woocommerce_cart_calculate_fees', 'add_custom_fee', 10, 2 );
function add_custom_fee ($cart,$rn_name) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( isset($_SESSION['rn_fee']) ){$rn_fee = $_SESSION['rn_fee'];}else{$rn_fee=0;}
if($rn_fee>0){
$cart->add_fee( __( $rn_name, 'woocommerce' ) , $rn_fee, false );
}
}
Где я делаю ошибку? Спасибо.