Como desativar o método de pagamento para uma categoria específica
Publicados: 2020-09-01Você está executando uma loja WooCommerce e deseja saber como desativar o método de pagamento para uma categoria específica ou vários métodos de pagamento com base nas categorias de produtos presentes no carrinho? Se você está procurando uma solução focada em categorias de produtos, mas com algumas pequenas alterações também pode ser alterada para classes de envio, por exemplo, nos próprios produtos, este artigo o orientará sobre como conseguir isso.
Desativar método de pagamento para categoria específica
Um bom exemplo em que essa abordagem é útil é quando os proprietários de lojas WooCommerce têm uma categoria contendo apenas produtos de alto preço e desejam que os clientes paguem com transferência bancária em vez de usar cartão de crédito. Este é apenas um exemplo das muitas situações em que você pode precisar desabilitar uma forma de pagamento para uma categoria.
Se você não é experiente em tecnologia, pode optar por um plugin premium para fazer o trabalho para você. Um exemplo é o WooCommerce Conditional Payment Plugin, que ajuda você a criar condições nas quais seus métodos de pagamento serão habilitados ou desabilitados. Se você não é tão bom em usar código, esta será a melhor solução premium que você deve considerar.
Além disso, este plugin permite que você crie condições ilimitadas e use, por exemplo, totais do carrinho, país de cobrança, função do usuário e muito mais para definir qual gateway de pagamento mostra e qual não.
No entanto, para este breve tutorial, mostrarei como desabilitar um método de pagamento para uma categoria específica usando trechos de código PHP.
Etapas para desativar o método de pagamento para uma categoria específica usando o trecho de código PHP
Aqui estão os passos simples que você precisa seguir:
- Faça login no seu site WordPress e acesse o Dashboard como usuário administrador.
- No menu Dashboard, clique em Appearance Menu > Theme Editor Menu . Ao abrir a página do Editor de Temas , procure o arquivo de funções do tema onde adicionaremos a função que desabilitará a forma de pagamento para uma categoria específica.
- Adicione o seguinte código ao arquivo php :
/** * @snippet Desativar forma de pagamento para categoria específica */ add_filter( 'woocommerce_available_payment_gateways', 'njengah_unset_gateway_by_category' ); function njengah_unset_gateway_by_category( $available_gateways) { if ( is_admin() ) return $available_gateways; if ( ! is_checkout() ) return $available_gateways; $desativado = falso; $category_ids = array(8, 37); foreach ( WC()->cart->get_cart_contents() as $chave => $valores) { $terms = get_the_terms( $values['product_id'], 'product_cat'); foreach ( $terms as $term ) { if (in_array( $term->term_id, $category_ids)) { $desativado = verdadeiro; pausa; } } } if ( $unset == true ) unset( $available_gateways['cheque'] ); return $available_gateways; }
- Este será o resultado
Lembre-se de adicionar o ID de categoria correto que está em sua loja WooCommerce para que este código funcione.
Se você não gosta de usar o ID da categoria, também pode usar o slug de categoria em sua loja WooCommerce. Você pode optar por usá-los, pois são mais fáceis de entender para referência futura.
Etapas para desativar o método de pagamento para uma categoria específica usando slugs de categoria
- Faça login no seu site WordPress e acesse o Dashboard como usuário administrador.
- No menu Dashboard, clique em Appearance Menu > Theme Editor Menu . Ao abrir a página do Editor de Temas , procure o arquivo de funções do tema onde adicionaremos a função que desabilitará a forma de pagamento para uma categoria específica.
- Adicione o seguinte código ao arquivo php :
/** * @snippet Desativa o gateway de pagamento com base na categoria. */ function njengah_disable_payment_gateway_category($gateways) { // Categorias que irão desabilitar o gateway de pagamento $category_slugs = array( 'acessórios', 'outra-categoria' ); $category_ids = get_terms( array( 'taxonomy' => 'product_cat', 'slug' => $category_slugs, 'fields' => 'ids' ) ); // Verifica cada item do carrinho para determinada categoria foreach ( WC()->cart->get_cart() as $item) { $produto = $item['dados']; if ( $product && array_intersect( $category_ids, $product->get_category_ids()) ) { unset( $gateways['cod']); // Desativa o gateway de pagamento 'cod' quando o produto possui uma das categorias pausa; } } retornar $portais; } add_filter( 'woocommerce_available_payment_gateways', 'njengah_disable_payment_gateway_category' );
- Este será o resultado
Lembre-se de adicionar o slug de categoria correto e você precisa definir o gateway de pagamento que deseja desativar. Para o meu exemplo, usei 'cod' para representar dinheiro na entrega.
É importante observar que o identificador do gateway de pagamento também precisa ser alterado para o que você deseja desativar quando a categoria fornecida estiver presente no carrinho.
- Transferência bancária (bac)
- Cheque (cheque)
- Dinheiro na entrega (bacalhau)
- PayPal (PayPal)
No entanto, se você não estiver usando um dos gateways de pagamento padrão, não se preocupe, pois ainda há uma maneira fácil de descobrir o ID do gateway de pagamento. Você pode fazer isso acessando a página de configurações do gateway de pagamento e encontrará o ID lá.
Por exemplo, para a opção Dinheiro na entrega na página de configurações, este será o URL: wp-admin/admin.php?page=wc-settings&tab=checkout§ion=cod
Conclusão
Neste post, você aprendeu como desabilitar o Método de Pagamento para Categoria Específica usando dois métodos. Você pode defini-los usando IDs de categoria de produto ou slugs de categoria para facilitar a referência futura. Lembre-se de usar o ID da categoria ou slug que está na sua loja WooCommerce para adicionar essa funcionalidade.
Artigos semelhantes
- Redirecionamento WRAC WooCommerce após o plug-in de checkout
- Como alterar o texto do botão Adicionar ao carrinho na página da loja WooCommerce
- Como remover o menu de downloads Minha página de conta WooCommerce
- Como vender produtos digitais com WooCommerce
- Como remover a classificação de produtos padrão WooCommerce
- Como adicionar números GTIN em produtos no WooCommerce
- Como classificar as categorias do WooCommerce para uma melhor experiência do usuário
- Como ocultar todos os produtos da página da loja no WooCommerce
- Como ocultar o campo de código de cupom WooCommerce
- Ocultar ou remover o campo de quantidade da página do produto WooCommerce
- Como exibir produtos WooCommerce por categoria
- Como adicionar a página de checkout do WooCommerce da imagem do produto