Me gustaria personalizar o añadir una opción para que los envíos fuera de la UE sepan que deben pagar el arancel si es necesario (los gastos aduaneros irán a cargo de los envíos fuera de la Unión Europea). El mensaje puede ir justo después de elegir el país o la ciudad.
Muchas gracias
Contenido solo visible a usuarios registrados
Hola Ferdinand,
En este caso no veo un plugin que permita añadir lo que necesitas; sin embargo, puedes comprobar si puedes añadirlo como se menciona en el siguiente artículo que tenemos disponible → https://www.webempresa.com/blog/como-agregar-mensaje-personalizado-al-finalizar-compra-en-woocommerce-segun-el-pais-seleccionado.html
También puedes revisar algunas opciones como → Contenido solo visible a usuarios registrados
Verifícalo y nos comentas como va todo
Un saludo
@karen Buenos días, gracias por responder. De los dos enlace, no entiendo bien como hacer. Si tengo varios países, tengo que ir duplicando el código y añadiendo el id de cada país o como?. Por ejemplo, para los envíos fuera de la Unión Europea, se puedo generalizar o no?
Hola Ferdinand
.- Instala el siguiente plugin:
-> https://es.wordpress.org/plugins/code-snippets/
El plugin te permite añadir código sin tener que editar archivos.
Una vez instalado:
.- Accede a Fragmentos de código -> Añadir nuevo
.- Añade un título para tenerlo localizado y añade el siguiente código:
function add_checkout_notice() {
}
add_action( 'woocommerce_cart_totals_before_shipping', 'show_checkout_notice', 12 ); //remove if you do not want to show it on the cart page
add_action( 'woocommerce_review_order_before_submit', 'show_checkout_notice', 10 ); //remove if you do not want to show it on the checkout page
function show_checkout_notice() {
global $woocommerce;
$msg_states = array( 'ES', 'BG', 'CZ', 'DK','DE', 'BG', 'EE', 'DK','IE', 'EL', 'FR', 'IT','CY', 'LV', 'LT', 'LU','HU', 'MT', 'NL', 'AT','PL', 'PT', 'RO', 'SI', 'SK', 'FI', 'SE' );
if( !in_array( WC()->customer->shipping_country, $msg_states ) ) {
echo '<h3 style="color:red"><strong>Tenga en Cuenta:</strong> los gastos aduaneros irán a cargo de los envíos fuera de la Unión Europea</span></h3>';
}
}
Un saludo
@pepesoler Muchas gracias. Me ha servido pero tengo otra duda. Como puedo personalizarlo para Las Islas Canarias. Aunque España está dentro de la UE, en Las Canarias se paga aranceles.
Hola Ferdinand
Podríamos hacerlo por zonas de envío, supongamos que para canarias tienes una zona de envío con el nombre " Gran Canarias y Tenerife ", el código sería el siguiente:
add_action( 'woocommerce_cart_totals_before_shipping' , 'mostrar_mensaje_zona_envio' );
add_action( 'woocommerce_review_order_before_submit' , 'mostrar_mensaje_zona_envio' );
function mostrar_mensaje_zona_envio() {
$targeted_zones_names = array('Gran Canarias y Tenerife'); //Zonas de envío configuradas
// Zona de envío seleccionada por el usuario
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' ); // Método de envío seleccionado
$chosen_method = explode(':', reset($chosen_methods) );
$shipping_zone = WC_Shipping_Zones::get_zone_by( 'instance_id', $chosen_method[1] );
$current_zone_name = $shipping_zone->get_zone_name();
$message = "Los gastos aduaneros, si proceden, irán a cargo del comprador.";
if( in_array( $current_zone_name, $targeted_zones_names ) ){
echo '<tr class="msg-shipping">
<td colspan="2" style="text-align:center"><h3 style="color:red"><strong>' . $message . '</strong></td></h3>
</tr>';
}
}
En la variable " $targeted_zones_names " le pasamos el nombre de las zonas de envío donde queremos mostrar ese mensaje, podemos añadir más de una zona separadas por comas " zona1, zona2..... "
La variable " $message " es donde definimos el mensaje que queremos que muestre.
Espero que esta información sea útil para lo que buscas, cualquier duda que tengas estamos aquí para poder orientarte.
Un Saludo
Hola Ferdinand,
Es un gusto poder ayudarte, cualquier consulta que tengas estaremos atentos
Saludos!