Ya vimos cómo Deshabilite la pasarela de pago predeterminada en la página de pago de WooCommercede modo que los usuarios se ven obligados a hacer clic en una de las opciones.
Bueno, ¡podemos hacer exactamente lo mismo con los métodos de envío!
De esta manera, los clientes se verán obligados a hacer clic en una de las opciones de envío. Esto es útil cuando no desea tener un envío predeterminado, y cuando sus clientes a menudo «se olvidan» de elegir el correcto y solicite cambiarlo una vez que se haya realizado el pedido.
¡Disfrutar!
Php Snippet: deshabilitar el método de envío predeterminado @ WooCommerce Checkout
Este fragmento agrega un gancho de acción que ejecutará el bbloomer_uncheck_default_shipping_method función antes de que se muestre el formulario de pago. Destruye el método de envío elegido, si lo hay, para garantizar que no se seleccione el método de envío predeterminado.
Luego, agregamos JavaScript en línea a la página. El código JavaScript en el interior se ejecutará cuando el cuerpo del documento desencadine el ‘actualizado_checkout‘ evento.
Este código JavaScript espera el ‘actualizado_checkout‘Evento para ocurrir una vez (¡Porque de lo contrario se ejecutará cada vez que hay una actualización de pago!), Y cuando sucede, desactualiza todos los elementos de entrada con la clase ‘shipping_method‘(Limpiar efectivamente cualquier método de envío seleccionado).
Finalmente, solo para estar seguros, agregamos un filtro para eliminar cualquier envío predeterminado para un paquete dado, antes de llegar a la página de pago.
En resumen, este código está destinado a garantizar que ningún método de envío predeterminado se preseleccione cuando un usuario llega a la página de pago de WooCommerce. También borra los métodos de envío elegidos de la sesión, y luego usa JavaScript para desmarcar cualquier método de envío seleccionado visualmente.
/** * @snippet No Default Shipping @ WooCommerce Checkout * @tutorial Get CustomizeWoo.com FREE * @author Rodolfo Melogli, Business Bloomer * @compatible WooCommerce 8 * @community Join https://businessbloomer.com/club/ */ add_action( 'woocommerce_before_checkout_form', 'bbloomer_uncheck_default_shipping_method' ); function bbloomer_uncheck_default_shipping_method() { WC()->session->set( 'chosen_shipping_methods', null ); wc_enqueue_js( " $( document.body ).one( 'updated_checkout', function() { $('input.shipping_method').prop('checked', false); }); " ); } add_filter( 'woocommerce_shipping_chosen_method', '__return_null' );