Adicionar botão “Checkout” adicional ao lado do botão “Adicionar ao carrinho” na página do produto woocommerce

Estou tentando encontrar uma function que adicionará o botão ADICIONAL ao lado do botão “Adicionar ao carrinho” padrão na página do produto do comércio do woo.

  1. Eu adicionei uma pasta woocommerce no meu tema childe para modificar o produto único => add-to-cart => simple.php
  2. Dentro do simple.php, encontrei o botão padrão “Adicionar ao carrinho” e depois é onde eu quero adicionar meu botão “checkout” adicional personalizado

Encontrei esta function:

function woo_redirect_to_checkout() { $checkout_url = WC()->cart->get_checkout_url(); return $checkout_url; 

}

O que funciona bem, MAS ele modifica TODOS os botões “adicionar ao carrinho” no site e estou tentando adicioná-lo SOMENTE ao novo botão personalizado que eu estou tentando adicionar (o novo botão de checkout) Eu consegui adicionar um botão que redireciona para Check-out, mas não adiciona o item ao carrinho antes de ir ao check-out

Alguém sabe como eu adiciono um botão NOVO + este botão não precisa apenas ir para a página de pagamento, mas também ativar a ação “Adicionar ao carrinho” ao mesmo tempo

obrigado

Solutions Collecting From Web of "Adicionar botão “Checkout” adicional ao lado do botão “Adicionar ao carrinho” na página do produto woocommerce"

Você não precisa modificar seus arquivos de modelo para isso, em vez disso, você pode usar o WooCommerce hook woocommerce_after_add_to_cart_button . Este gancho adiciona conteúdo após o botão “Adicionar ao carrinho”.

Se o cliente clicar neste botão, o produto deve ser adicionado ao carrinho, e o cliente deve ser enviado para a página de saída, certo ?!

Basicamente você pode adicionar produtos ao carrinho com um link como este:

 http://example.com/cart/?add-to-cart= 

Então, usando o gancho mencionado acima e mantendo este URL em mente, podemos adicionar um segundo botão com este trecho:

 function add_content_after_addtocart() { // get the current post/product ID $current_product_id = get_the_ID(); // get the product based on the ID $product = wc_get_product( $current_product_id ); // get the "Checkout Page" URL $checkout_url = WC()->cart->get_checkout_url(); // run only on simple products if( $product->is_type( 'simple' ) ){ echo 'Checkout'; } } add_action( 'woocommerce_after_add_to_cart_button', 'add_content_after_addtocart' ); 

Isto irá adicionar um botão após o botão normal Adicionar ao carrinho em páginas de um único produto. Como você pode ver, eu também adicionei uma verificação para ver se o produto atual é um produto simples ou não. Se você quiser usar isso com variação, é mais difícil. Com esses produtos, você precisa gerar uma URL como:

 http://example.com/cart/?add-to-cart=123&variation_id=456&attribute_pa_colour=black 

Talvez você também precise verificar a opção padrão do WooCommerce Enable AJAX Add to cart (WooCommerce> Produtos> Exibir). Não o testei com esta configuração.


Atualize para include a quantidade

Se você deseja adicionar uma quantidade, você também pode acrescentar um parâmetro ao URL do botão, assim:

 http://example.com/cart/?add-to-cart=&quantity= 

No entanto, uma vez que um cliente pode alterar a quantidade com o campo de input do WooCommerce, precisamos de uma maneira de obter o valor atual desse campo.

Então, temos várias opções aqui,

  • ouça um evento on-change no campo da quantidade para atualizar nosso URL,

  • ou adicione o valor atual do campo de quantidade ao URL, somente se o nosso botão personalizado for clicado.

O código a seguir usa a segunda abordagem, somente quando o botão é clicado, o parâmetro é adicionado.

Dentro da function if( $product->is_type( 'simple' ) ) , antes do eco, insira este script:

  

Não incluí stop e comece tags PHP no código acima! Então, você precisa encerrar o PHP antes do (?>) E iniciá-lo novamente após o script (