Avisos
Vaciar todo

[Resuelto] Personalizar las opciones de envío  

 
Ferdinand
 Ferdinand
Usuario experto

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

Respondido : 15/09/2023 10:08 pm
Karen Rios
 Karen Rios
Soporte CMS Webempresa Moderator

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 

 

Respondido : 15/09/2023 11:02 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Ferdinand
 Ferdinand
Usuario experto

@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?

Respondido : 16/09/2023 6:13 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

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>';

}
}

 

screenshot mary52.webempresa.eu 2023.09.16 15 48 39

 

Un saludo

Respondido : 16/09/2023 2:52 pm

Ferdinand
 Ferdinand
Usuario experto

@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.

Respondido : 17/09/2023 2:29 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

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

Respondido : 17/09/2023 4:41 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Ferdinand
 Ferdinand
Usuario experto

@pepesoler Muchas gracias, me han servido los dos codigos.

Respondido : 17/09/2023 8:37 pm
Bruno
 Bruno
Soporte CMS Webempresa Moderator

Hola Ferdinand,

Es un gusto poder ayudarte, cualquier consulta que tengas estaremos atentos

Saludos!

Respondido : 17/09/2023 9:21 pm

wpdoctor-revisa-la-salud-de-tu-wordpress