Avisos
Vaciar todo

Woocomerce distinto checkout segun el envio  

 
Javier
 Javier
Usuario activo

Hola,
Me gustaría que me indicaseis, como cambiar el formulario del checkout segun el metodo de envío.

Por ejemplo, envíos a toda España, por mensajería privada con 2 opciones :

1) mandar a tu casa ( Formulario normal, con la dirección y todo lo tipico del cliente)

2) Recoger en local. ( aquí solo me interesa que el cliente pueda elegir en un desplegable las diferentes oficinas a las que se puede entregar) Pero no poner la direccion de su casa ni nada de eso como en el caso anterior.

Ideas para hacer esto?

Muchas gracias.

URL del sitio: Contenido solo visible a usuarios registrados

Citar
Respondido : 26/03/2019 11:48 pm
Johnny Heredia Montiel
 Johnny Heredia Montiel
Miembro Moderator

Hola,

Puedes utilizar un plugin para la entrega en oficinas: https://woocommerce.com/products/local-pickup-plus/

ResponderCitar
Respondido : 27/03/2019 2:22 am

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

Javier
 Javier
Usuario activo

Hola,
Gracias por tu respuesta.

He estado probando este codigo

/**
* @snippet Disable Shipping Fields for Local Pickup
* @how-to Watch tutorial @ https://businessbloomer.com/?p=19055
* @sourcecode https://businessbloomer.com/?p=72660
* @author Rodolfo Melogli
* @testedwith WooCommerce 3.0.7
#customer_details .col-2
*/

add_action( 'woocommerce_after_checkout_form', 'bbloomer_disable_shipping_local_pickup' );

function bbloomer_disable_shipping_local_pickup( $available_gateways ) {
global $woocommerce;

$shippingSelector = '.shipping_method';

// Part 1: Hide shipping based on the static choice @ Cart
// Note: "#customer_details .col-2" strictly depends on your theme

$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
$chosen_shipping_no_ajax = $chosen_methods[0];
if ( 0 === strpos( $chosen_shipping_no_ajax, 'local_pickup' ) ) {

?>

jQuery().fadeOut();

jQuery('form.checkout').on('change','select[name^="shipping_method"]',function() {
var val = jQuery( this ).val();
if (val.match("^local_pickup")) {
jQuery().fadeOut();
} else {
jQuery().fadeIn();
}
});

<?php

}

El problema es que parece que el ajax no me refresca bien la pagina al cambiar el metodo de envio.

Es decir, cuando yo cambio un metodo de envio, se me actualizan los metodos de pago y me salen mas o menos, pero no me pasa lo mismo con los campos del checkout.

Si puedes ayudarme, te lo agradecería.

Un saludo.

ResponderCitar
Respondido : 27/03/2019 5:53 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Javier.

No damos soporte de código en el foro,

Revisa este plugin si te puede servir para lo que buscas:
-> https://wordpress.org/plugins/wc-pickup-store/

Un Saludo

ResponderCitar
Respondido : 27/03/2019 10:14 am

Cursos Gratuitos WordPress