Настройте плату сайта корзины в соответствии со своей формой - PullRequest
0 голосов
/ 09 марта 2020

Используйте форму на странице корзины, чтобы определить размер комиссии. Мне нужно изменить общую цену после обновления и записать в регистр 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 );
        }

    }

Где я делаю ошибку? Спасибо.

...