Cómo simplificar el tema de la tienda de elementos gratuitos de Checkout

Publicado: 2020-11-03

Escaparate Simplificar Pago Artículos gratis En la mayoría de las tiendas WooCommerce, los clientes compran productos y envían el pago después de proceder al pago. Además, también seleccionarán un método de envío o ingresarán un código de cupón para recibir un descuento.

Sin embargo, si está ofreciendo un artículo gratis en su tienda, es posible que no necesite todos los campos en el proceso de pago. Esto significa que no cobrará ningún pago de envío. Como resultado, es posible que no necesite los detalles de facturación, solo el nombre y probablemente un correo electrónico.

Escaparate Simplificar Pago Artículos gratis

Vale la pena mencionar que WooCommerce eliminará de manera útil la selección del método de pago para pagos gratuitos. Sin embargo, los campos de facturación aún están presentes y son obligatorios para realizar un pedido: Detalles de facturación

Si vende productos virtuales gratuitos, como membresía gratuita, sería mejor simplificar el proceso de pago.

Si tiene este problema, es fácil verificar si el pago no tiene costo con la verificación WC()->cart->needs_payment(). Ilustraré cómo usar esto para tomar algunas medidas para simplificar el pago gratuito de WooCommerce si no se necesita pago. Necesitamos eliminar algunos campos de facturación de forma condicional.

Permítame guiarlo a través de algunos pasos que puede seguir para simplificar el pago gratuito y juntarlo en un fragmento utilizable.

Pasos para simplificar el pago de artículos gratuitos

  1. Eliminar formularios de cupones

No necesita un formulario de cupón si desea realizar un pago gratuito, ya que no hay nada que descontar. Usaré ! WC()->cart->needs_payment() como un cheque, lo que supondrá que el total del pago es $0, por lo que no hay gastos de envío ni pago del pedido. Para eliminar de forma segura la entrada del cupón, necesitamos usar el siguiente código:

 // elimine formularios de cupones si no desea un cupón para un carrito gratis

remove_action('woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10);
  1. Deshabilitar notas de pedido

Es posible que desee recopilar notas de pedido para un pedido gratuito. Sin embargo, lo principal que intentamos hacer es simplificar el proceso de pago para los clientes en su tienda WooCommerce. Eliminaré toda la sección "Información adicional" del proceso de pago. Esto se puede hacer usando el filtro woocommerce_enable_order_notes_field, ya que podemos establecerlo en falso, por lo que no hay notas de pedido.

 // Eliminar las notas de pedido de "Información adicional"

add_filter('woocommerce_enable_order_notes_field', '__return_false');
  1. Desactivar campos innecesarios

Dado que es un pedido gratuito, no necesitamos cargar una tarjeta de crédito. La mayoría de los campos de facturación en el proceso de pago no son necesarios. Esto significa que tengo que desactivar el campo de compra que no necesito. Puede encontrar una lista de los campos de pago en la documentación de WooCommerce.

 // Desactivar los campos que no queremos en un pago gratuito

función unset_unwanted_checkout_fields ($ campos) {

// lista de las claves del campo de facturación a eliminar

$claves_de_facturación = matriz(

'empresa_de_facturación',

'teléfono de facturación',

'Dirección de facturación 1',

'dirección_facturación_2',

'ciudad_de_facturación',

'código_postal_facturación',

'país_de_facturación',

'estado de cuenta',

);

// anular cada uno de esos campos no deseados

foreach ($ claves de facturación como $ clave) {

unset( $campos['facturacion'][$clave] );

}

devolver $campos;

}

add_filter('woocommerce_checkout_fields', 'unset_unwanted_checkout_fields');

Sin embargo, puede elegir los campos que desea eliminar del formulario de pago.

  1. Agregar el código

Estos son los pasos para agregar el código en el archivo functions.php del tema Storefront:

  1. Inicie sesión en su sitio de WordPress y acceda al Panel como usuario administrador.
  2. En el menú del panel, haga clic en Menú de apariencia > Menú del editor de temas . Cuando se abra la página del Editor de temas, busque el archivo de funciones del tema para simplificar el pago de artículos gratuitos.
  3. Agregue el siguiente código a las funciones. php
 /**

 * Elimina el formulario de cupón, las notas de pedido y varios campos de facturación si el pago no requiere pago.

 *

 * REQUIERE PHP 5.3+

 *

  */

función sv_free_checkout_fields() {

            // primero, rescatar si WC no está activo ya que estamos enganchados a un gancho general de WP

            if ( ! function_exists( 'WC' ) ) {

                        regreso;

            }

            // fianza si el carrito necesita pago, no queremos hacer nada

            if ( WC()->carrito && WC()->carrito->necesita_pago() ) {

                        regreso;

            }

            // ahora continuar solo si estamos en la caja

            // is_checkout() se rompió a partir de WC 3.2 en contexto ajax, verifique dos veces is_ajax

            // Verificaría WOOCOMMERCE_CHECKOUT pero las pruebas muestran que no está configurado de manera confiable

            if ( function_exists( 'is_checkout' ) && ( is_checkout() || is_ajax() ) ) {

                        // eliminar formularios de cupones ya que ¿por qué querrías un cupón para un carrito gratis?

                        remove_action('woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10);

                        // Eliminar las notas de pedido de "Información adicional"

                        add_filter('woocommerce_enable_order_notes_field', '__return_false');

                        // Desactivar los campos que no queremos en un pago gratuito

                        add_filter('woocommerce_checkout_fields', función( $campos ) {

                                    // agregue o elimine los campos de facturación que no desea

                                    // campos: http://docs.woothemes.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/#section-2

                                    $claves_de_facturación = matriz(

                                                'empresa_de_facturación',

                                                'teléfono de facturación',

                                                'Dirección de facturación 1',

                                                'dirección_facturación_2',

                                                'ciudad_de_facturación',

                                                'código_postal_facturación',

                                                'país_de_facturación',

                                                'estado de cuenta',

                                    );

                                    // anular cada uno de esos campos no deseados

                                    foreach ($ claves de facturación como $ clave) {

                                                unset( $campos['facturacion'][ $clave ] );

                                    }

                                    devolver $campos;

                        });

            }

}

add_action('wp', 'sv_free_checkout_fields' );
  1. Cuando agregue el código completo, el pago de WooCommerce se simplificará: pago simplificado

Conclusión

En resumen, lo he guiado a través de los pasos para simplificar el proceso de pago. He explicado los pasos en detalle para que puedas entender el código. Sin embargo, debe tener en cuenta que este artículo presenta cambios de código o fragmentos que puede realizar en su archivo function.php de temas activos. Si no está familiarizado con esta tarea, contrate a un desarrollador de WordPress.

Artículos similares