Avisos
Vaciar todo

Añadir boton de "Compra Ahora" en cada página de producto

18 Respuestas
4 Usuarios
0 Reactions
77 Visitas
 Ana
Respuestas: 550
Honorable Member
Topic starter
 

Hola,

En woocommerce veo que todas las páginas de "producto"  (single product) tienen su botón "Añadir al carrito", le das y lo añade , pero sigues en esa página del producto...  pero me gustaría acortar pasos y tener también un boton "Comprar Ahora" que dirija al usuario directamente a carrito, con ese producto, para ya comprarlo. Como lo puedo hacer?

 

Gracias por anticipado!

Ana

 

 

Contenido solo visible a usuarios registrados


 
Respondido : 31/05/2021 10:16 am
Karen Rios
Respuestas: 18657
Illustrious Member Moderator
 

Hola Ana, 

En este caso puedes verificar si con alguno de los siguientes complementos puedes añadir la opción de compra rápida en la página de tus productos

-> https://es.wordpress.org/plugins/woo-direct-checkout-button/

-> https://es.wordpress.org/plugins/add-to-cart-direct-checkout-for-woocommerce/

Un Saludo


 
Respondido : 31/05/2021 12:06 pm
 Ana
Respuestas: 550
Honorable Member
Topic starter
 

@karen

Hola Karen,

Gracias por tus sugerencias.

No es posible añadir ese botón de "Comprar Ahora" con código?

Es que ya tengo bastantes plugins instalados y necesarios y en todos lados veo que decís que cuantos menos mejor.

Gracias!

Ana 


 
Respondido : 02/06/2021 8:41 am
Pepe
 Pepe
Respuestas: 41113
Illustrious Member Admin
 

Hola Ana.

Prueba la siguiente función:

/* Crear botón Comprar ahora dinámicamente después del botón Agregar al carrito */
function add_content_after_addtocart() {

// obtener la publicación actual / ID de producto
$current_product_id = get_the_ID();

// obtener el producto basado en el ID
$product = wc_get_product( $current_product_id );

// obtener la URL de la "Página de pago"
$checkout_url = WC()->cart->get_checkout_url();

// ejecutar solo en productos simples
if( $product->is_type( 'simple' ) ){
echo '<a href="'.$checkout_url.'?add-to-cart='.$current_product_id.'" class="buy-now button">Comprar Ahora</a>';
//echo '<a href="'.$checkout_url.'" class="buy-now button">Compra ahora</a>';
}
}
add_action( 'woocommerce_after_add_to_cart_button', 'add_content_after_addtocart' );

 

Puedes añadirlo en el archivo functions.php que encontraras en wp-content -> themes -> tu_plantilla

 

Nota: recuerda descarga una copia del archivo antes de añadir el código para tener el original 

 

Un saludo 


 
Respondido : 02/06/2021 10:59 am
 Ana
Respuestas: 550
Honorable Member
Topic starter
 

@pepesoler

Hola Pepe,

Espero que sigas bien.

El código que me has escrito... funciona genial! es perfecto! 

Hasta le cambié el color con css ya.  😉 

Muchísimas gracias por tu gran ayuda!

Que tengas un feliz día! Un abrazo!

Ana

 

 

 


 
Respondido : 02/06/2021 2:38 pm
 Ana
Respuestas: 550
Honorable Member
Topic starter
 

Hola Pepe, 😊 

Me acabo de dar cuenta de que el botón aparece y funciona cuando el producto es producto simple.

image

Si el producto tiene por ejemplo a escoger color o talla no aparece el botón.

image

Que puede estar pasando?

Quedo a la espera, gracias

Ana


 
Respondido : 02/06/2021 2:49 pm
Pepe
 Pepe
Respuestas: 41113
Illustrious Member Admin
 

Hola Ana.

Para los productos con combinaciones no funciona ya que el usuario tienes que seleccionar alguna opción, solo funciona paar productos simples.

Puedes probar lo siguiente lo que este si que no lo probé y no se si funcionara bien.

 

/* Crear botón Comprar ahora dinámicamente después del botón Agregar al carrito */
function add_content_after_addtocart_variable() {

// obtener la publicación actual / ID de producto
$current_product_id = get_the_ID();

// obtener el producto basado en el ID
$product = wc_get_product( $current_product_id );

// obtener la URL de la "Página de pago"
$checkout_url = WC()->cart->get_checkout_url();

// ejecutar solo en productos simples
if( $product->is_type( 'variable' ) ){

echo '<a href="'.$checkout_url.'?add-to-cart='.$current_product_id.'" class="buy-now button">Comprar Ahora</a>';
//echo '<a href="'.$checkout_url.'" class="buy-now button">Compra ahora</a>';
}
}
add_action( 'woocommerce_after_add_to_cart_button', 'add_content_after_addtocart_variable' );

 

Un saludo

 


Esta publicación ha sido modificada el hace 4 años por Pepe
 
Respondido : 02/06/2021 2:59 pm
 Ana
Respuestas: 550
Honorable Member
Topic starter
 

@pepesoler

Hola Pepe, parece que tu último mensaje se ha cortado, no aparece todo.

Lo puedes enviar de nuevo? gracias!

Ana


 
Respondido : 02/06/2021 3:02 pm
Pepe
 Pepe
Respuestas: 41113
Illustrious Member Admin
 

Hola Ana.

Ya lo tienes 😉 

 

Un saludo


 
Respondido : 02/06/2021 3:03 pm
 Ana
Respuestas: 550
Honorable Member
Topic starter
 

@pepesoler

Hola Pepe,

Gracias por el segundo código.

Si que muestra el botón, pero no funciona.

Voy a un producto variable, escojo color, escojo talla (no me deja variar la cantidad), y al pulsar el botón de comprar ahora,

se va al carrito directamente pero no añade el producto.

Algo falla.. 🤔 

 

Quedo a la espera.

 

Ana

 


 
Respondido : 02/06/2021 3:15 pm
 Ana
Respuestas: 550
Honorable Member
Topic starter
 

Por cierto he puesto los dos códigos, entiendo que debo ponner los dos, uno para producto fijo y el otro para producto variable. 🙂 


 
Respondido : 02/06/2021 3:17 pm
Karen Rios
Respuestas: 18657
Illustrious Member Moderator
 

Hola Ana, 

Es posible que para añadir productos variables sean un poco más complicados, si embargo puedes verificar si con el siguiente código te permite añadir lo que deseas dentro de los productos variables

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( 'variable' ) ){ ?>

<script>
jQuery(function($)
{

$(".custom-checkout-btn").on("click", function()
{
$(this).attr("href", function()
{
return this.href + '&quantity=' + $('input.qty').val();
});

});
});
</script>
<?php
echo '<a href="'.$checkout_url.'?add-to-cart='.$current_product_id.'" class="single_add_to_cart_button button alt custom-checkout-btn">Checkout</a>';
}
}
add_action( 'woocommerce_after_add_to_cart_button', 'add_content_after_addtocart' );

Otra alternativa es usar un complemento como ->  https://es.wordpress.org/plugins/woocommerce-quick-buy/

Verifica esto y nos comentas como ha ido todo

Un Saludo 

 


 
Respondido : 02/06/2021 4:14 pm
 Ana
Respuestas: 550
Honorable Member
Topic starter
 

@karen

 

Hola Karen! 😊 

Gracias por ayudarme en este problema.

Ahora tengo puestos los dos códigos que me envió Pepe.

Entonces,este codigo...  lo pongo tambien seguido con los que me envió Pepe en el archivo functions.php ? Sin quitarlos? O he de cambiar alguno de los de antes por este?

Ahora tengo puestos los dos códigos que me envió Pepe.

Perdona mi ignorancia.

Quedo a la espera.

Gracias por anticipado!

Ana

 


 
Respondido : 02/06/2021 5:04 pm
Karen Rios
Respuestas: 18657
Illustrious Member Moderator
 

Hola Ana, 

Prueba eliminar el código para los productos variables y añadir este. Luego verifica si con este funciona en este tipo de productos. 

PD: Ten en cuenta siempre mantener una copia de seguridad de tu sitio web, de esta forma si se genera un error puedes restaurarla

Un Saludo 


 
Respondido : 02/06/2021 5:08 pm
 Ana
Respuestas: 550
Honorable Member
Topic starter
 

Hola Karen,

 

He quitado el segundo código de Pepe y he puesto el tuyo, pero no ne podido ni probarlo ya que la web se rompe, y aparece un mensaje que dice algo como "Algo grave a pasado en la web" y no se ve.

Lo he quitado y se ha restaurado bien.

 

Puede que haya alguna cosa mal? Yo lo que copiado tal cual me lo has enviado.

Quedo ala espera, gracias

Ana

 


 
Respondido : 02/06/2021 5:16 pm
Página 1 / 2