У меня есть магазин WordPress с использованием плагина Woocommerce. В настоящее время я могу динамически добавлять комиссионные при оформлении заказа с помощью функции $woocommerce->cart->add_fee()
, назначенной хуку woocommerce_cart_calculate_fees
. Однако я также хотел бы иметь возможность снимать комиссионные при оформлении заказа, но мне не удалось заставить его работать. Я пытаюсь вызвать функцию PHP через AJAX, которая затем очистит сборы, используя этот метод .
Когда я просто повторяю 'success' из функции clearfees (), вызов AJAX завершается успешно. Однако, когда я пытаюсь вызвать $ WC () -> cart-> remove_all_fees (), AJAX завершается с ошибкой 500.
Снять плату за звонок AJAX из Javascript
function clear_fees() {
$.ajax({
type: 'GET',
url: entrada_params.admin_ajax_url,
data: { action : 'clear_fees' }
}).done( function( data ) {
console.log(data);
} )
.fail( function( jqXHR, textStatus, errorThrown ) { // HTTP Error
console.error( errorThrown );
} );
}
Функция clearfees в функциях моей темы. Php
function clearfees() {
$WC()->cart->remove_all_fees();
wp_die();
}
// creating Ajax call for WordPress
add_action('wp_ajax_clear_fees', 'clearfees');
add_action('wp_ajax_nopriv_clear_fees', 'clearfees');
В процессе поиска я обнаружил очень мало информации о функции remove_all_fees () на практике, но кажется логичным решением, если я смогу заставить ее работать.