По сути, это флажок, поэтому, когда он установлен или снят, он добавляет или не добавляет процентную комиссию в дополнение к обычному налогу (это своего рода специальный налог в Испании).
Но вот уже год как он больше не работает и не знаю почему. Я пытался изменить имена переменных или даже удалить плагины, которые могут взаимодействовать с комиссиями, но... это просто не работает, а несколько лет назад это работало. Или, возможно, это сам код.
Код:
Код: Выделить всё
// Agregar un nuevo campo al formulario de pago
add_action( 'woocommerce_review_order_before_payment', 'agregar_checkbox_recargo_equivalencia' );
function agregar_checkbox_recargo_equivalencia() {
echo '' . __('Recargo de Equivalencia', 'woocommerce') . '';
woocommerce_form_field( 'recargo_equivalencia1', array(
'type' => 'checkbox',
'class' => array('input-checkbox'),
'label' => __('Estoy acogido al recargo de equivalencia (+5,2%)', 'woocommerce'),
), WC()->session->get( 'recargo_equivalencia1' ));
echo '';
}
// Guardar el estado del checkbox en la sesión
add_action( 'woocommerce_checkout_update_order_meta', 'guardar_checkbox_recargo_equivalencia' );
function guardar_checkbox_recargo_equivalencia( $order_id ) {
if ( !empty( $_POST['recargo_equivalencia1'] ) ) {
WC()->session->set( 'recargo_equivalencia1', '1' );
} else {
WC()->session->__unset( 'recargo_equivalencia1', '0');
}
}
// Aplicar el recargo de equivalencia al total de los productos si se ha marcado el checkbox
add_action( 'woocommerce_cart_calculate_fees', 'aplicar_recargo_equivalencia' );
function aplicar_recargo_equivalencia() {
if ( WC()->session->get( 'recargo_equivalencia1' ) === '1' ) {
$cart1 = WC()->cart->get_cart();
$total_productos1 = 0;
// Sumar el total de los productos en el carrito
foreach ( $cart1 as $cart_item1 ) {
$total_productos1 += $cart_item1['line_total'];
}
$recargo1 = $total_productos1 * 0.052; // 5.2% del total de productos
WC()->cart->add_fee( ___ ('RE', 'woocommerce'), $recargo1 );
}
}
// Cargar script de JavaScript para actualizar el resumen del pedido en finalizar compra
add_action( 'wp_footer', 'actualizar_resumen_pedido_js' );
function actualizar_resumen_pedido_js() {
// Solo cargamos el script en la página de finalizar compra
if ( is_checkout() && ! is_wc_endpoint_url() ) {
?>
jQuery(document).ready(function($){
// Detectar cambios en el checkbox de recargo de equivalencia
$('input[name="recargo_equivalencia1"]').on('click', function(){
// Forzar la actualización del resumen del pedido
setTimeout(function(){
$(document.body).trigger('update_checkout');
}, 100);
});
});
Подробнее здесь: [url]https://stackoverflow.com/questions/78824504/why-no-longer-running-woocommerce[/url]
Мобильная версия