Como simplificar o tema da vitrine de itens gratuitos do Checkout

Publicados: 2020-11-03

Itens gratuitos de checkout simplificado na vitrine Na maioria das lojas WooCommerce, os clientes compram produtos e enviam o pagamento depois de fazer o checkout. Além disso, eles também selecionarão um método de envio ou inserirão um código de cupom para receber um desconto.

No entanto, se você estiver oferecendo um item gratuito em sua loja, talvez não exija todos os campos na finalização da compra. Isso significa que você não receberá nenhum pagamento de frete. Como resultado, talvez você não precise dos detalhes de cobrança, apenas o nome e provavelmente um e-mail.

Itens gratuitos de checkout simplificado na vitrine

Vale a pena mencionar que o WooCommerce removerá de maneira útil a seleção do método de pagamento para checkouts gratuitos. No entanto, os campos de cobrança ainda estão presentes e são necessários para fazer um pedido: detalhes de faturamento

Se você vende produtos virtuais gratuitos, como associação gratuita, seria melhor simplificar o processo de checkout.

Se você está tendo esse problema, é fácil verificar se o checkout não tem custo com a verificação WC()->cart->needs_payment(). Ilustrarei como usar isso para realizar algumas ações para simplificar o checkout gratuito do WooCommerce se nenhum pagamento for necessário. Precisamos remover alguns campos de cobrança condicionalmente.

Deixe-me orientá-lo em algumas etapas que você pode seguir para simplificar o checkout gratuito e juntá-lo em um snippet utilizável.

Etapas para simplificar o checkout de itens gratuitos

  1. Remover formulários de cupom

Você não precisa de um formulário de cupom se quiser ter um checkout gratuito, pois não há nada para descontar. Usarei ! WC()->cart->needs_payment() como um cheque, que assumirá que o total do checkout é $0, então não há custos de envio ou pagamento do pedido necessário. Para remover com segurança a entrada do cupom, precisamos usar o seguinte código:

 // remove formulários de cupom se você não quiser um cupom para um carrinho grátis

remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10 );
  1. Desativar notas do pedido

Você pode querer reunir notas de pedido para um pedido gratuito. No entanto, a principal coisa que estamos tentando fazer é simplificar o processo de checkout para clientes em sua loja WooCommerce. Vou remover toda a seção "Informações adicionais" do checkout. Isso pode ser feito usando o filtro woocommerce_enable_order_notes_field, pois podemos definir isso como false, para que não haja notas de pedido.

 // Remove as notas do pedido "Informações Adicionais"

add_filter('woocommerce_enable_order_notes_field', '__return_false');
  1. Campos desnecessários não definidos

Como é um pedido gratuito, não precisamos cobrar um cartão de crédito. A maioria dos campos de faturamento no checkout não são necessários. Isso significa que eu tenho que desmarcar o campo de compra que eu não preciso. Você pode encontrar uma lista dos campos de checkout na documentação do WooCommerce.

 // Desmarca os campos que não queremos em um checkout gratuito

function unset_unwanted_checkout_fields( $fields ) {

// lista das chaves do campo de cobrança a serem removidas

$billing_keys = array(

'billing_company',

'faturamento_telefone',

'Endereço de cobrança 1',

'endereço_de cobrança_2',

'billing_city',

'billing_postcode',

'País de faturamento',

'Estado de faturamento',

);

// desmarca cada um desses campos indesejados

foreach( $billing_keys as $key ) {

unset( $fields['billing'][$key]);

}

retornar $ campos;

}

add_filter('woocommerce_checkout_fields', 'unset_unwanted_checkout_fields');

No entanto, você pode escolher os campos que deseja remover do formulário de checkout.

  1. Adicionando o código

Aqui estão as etapas para adicionar o código no arquivo functions.php do tema Storefront:

  1. Faça login no seu site WordPress e acesse o Dashboard como usuário administrador.
  2. No menu Dashboard, clique em Appearance Menu > Theme Editor Menu . Quando a página do Editor de Temas for aberta, procure o arquivo de funções do tema para simplificar o checkout gratuito de itens.
  3. Adicione o seguinte código ao arquivo functions. php
 /**

 * Remove formulário de cupom, notas de pedido e vários campos de cobrança se a finalização da compra não exigir pagamento.

 *

 * REQUER PHP 5.3+

 *

  */

function sv_free_checkout_fields() {

            // primeiro, fiança se o WC não estiver ativo, pois estamos conectados a um gancho geral do WP

            if ( ! function_exists( 'WC' ) ) {

                        Retorna;

            }

            // fiança se o carrinho precisar de pagamento, não queremos fazer nada

            if ( WC()->carrinho && WC()->carrinho->necessidades_pagamento() ) {

                        Retorna;

            }

            // agora continua apenas se estivermos no checkout

            // is_checkout() foi quebrado a partir do WC 3.2 no contexto ajax, verifique novamente para is_ajax

            // Eu verificaria WOOCOMMERCE_CHECKOUT, mas o teste mostra que não está definido de forma confiável

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

                        // remove formulários de cupom, pois por que você deseja um cupom para um carrinho grátis??

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

                        // Remove as notas do pedido "Informações Adicionais"

                        add_filter('woocommerce_enable_order_notes_field', '__return_false');

                        // Desmarca os campos que não queremos em um checkout gratuito

                        add_filter( 'woocommerce_checkout_fields', function( $fields ) {

                                    // adiciona ou remove campos de cobrança que você não deseja

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

                                    $billing_keys = array(

                                                'billing_company',

                                                'faturamento_telefone',

                                                'Endereço de cobrança 1',

                                                'endereço_de cobrança_2',

                                                'billing_city',

                                                'billing_postcode',

                                                'País de faturamento',

                                                'Estado de faturamento',

                                    );

                                    // desmarca cada um desses campos indesejados

                                    foreach( $billing_keys as $key ) {

                                                unset( $fields['billing'][ $key ] );

                                    }

                                    retornar $ campos;

                        });

            }

}

add_action( 'wp', 'sv_free_checkout_fields');
  1. Ao adicionar o código inteiro, o checkout do WooCommerce será simplificado: checkout simplificado

Conclusão

Em resumo, guiei você pelas etapas de simplificação do processo de checkout. Eu expliquei as etapas em detalhes para que você possa entender o código. No entanto, você precisa observar que este artigo apresenta alterações de código ou trechos que você pode fazer em seu arquivo function.php de temas ativos. Se você não estiver familiarizado com essa tarefa, contrate um desenvolvedor WordPress.

Artigos semelhantes