¿Mostrar el botón "añadir al carrito" en cada listado de la página de categoría de productos?

30 ago 2018, 11:45:48
Vistas: 59.2K
Votos: 1

Necesito colocar el botón Añadir al carrito en cada producto de la página de una categoría específica como se muestra a continuación Captura de pantalla de página de categoría de productos con botones de añadir al carrito

¿Cómo puedo lograr esto? Enlace a la página del tema oma-fintess.com.ua

0
Todas las respuestas a la pregunta 4
0

Puedes usar el hook de WooCommerce woocommerce_after_add_to_cart_button. Este hook agregará contenido después del botón "Añadir al carrito".

Si el cliente hace clic en este botón, el producto se agregará al carrito y el cliente será enviado a la página de pago.

Añade el siguiente código en el archivo functions.php de tu tema hijo:

/* Crear botón Comprar Ahora dinámicamente después del botón Añadir al Carrito */
function add_content_after_addtocart() {

    // obtener el ID actual del producto/post
    $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">Comprar Ahora</a>';
    }
}
add_action( 'woocommerce_after_add_to_cart_button', 'add_content_after_addtocart' );
27 sept 2020 15:27:54
2
<a href="<?php the_permalink(); ?>" class="more">Más información</a><?php
if($available){?><a href="<?php
                $add_to_cart = do_shortcode('[add_to_cart_url id="'.$post->ID.'"]');
                echo $add_to_cart;
?>" class="more">Comprar ahora</a>
                    <?php 
                }

Este código resuelve mi problema como se esperaba.

Referencia de documentación de WooCommerce

30 ago 2018 18:37:52
Comentarios

¿Podrías explicar dónde colocas este código?

bokan bokan
25 jun 2020 23:35:48

Tienes que colocar ese código en la plantilla de la página del producto, por lo que recuerdo.

Twissell Twissell
27 jun 2020 15:27:25
2

Aquí tienes una solución sencilla para ello.

$product_object = wc_get_product( $product_id );
echo '<a href="' . esc_url( $product_object->add_to_cart_url() ) . '" class="buy-now button">' . esc_html__( 'Comprar Ahora', 'text-domain' ) . '</a>';
22 mar 2021 12:11:03
Comentarios

Debería ser la respuesta aceptada.

Loosie94 Loosie94
16 jun 2021 15:40:09

Gracias @Loosie94

Өлзийбат Нансалцог Өлзийбат Нансалцог
19 jun 2021 11:41:43
4

Asegúrate de que la opción "Habilitar botones AJAX para agregar al carrito en archivos" esté activada en WooCommerce > Configuración > Productos > Visualización.

También verifica que el siguiente código esté colocado en el archivo de funciones de tu tema.

add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
30 ago 2018 13:07:33
Comentarios

@pratik-pratel No, no funciona para nada en mi caso. Quizás te falta alguna parte de tu código al pegarlo? Supongo que debería usar <?php echo do_shortcode('[add_to_cart id="'.$post->ID.'"]'); ?> pero ¿cómo puedo aplicar estilo al botón de este shortcode?

Twissell Twissell
30 ago 2018 13:28:28

Debes probar esto [add_to_cart id="27" style="border-right:1px solid #ccc"]

Pratik Patel Pratik Patel
30 ago 2018 13:37:38

Si estás sobrescribiendo estilos existentes tendrás que escribir .woocommerce .product .add_to_cart_button.button{ background-color: #333333; color: #FFFFFF; }

Pratik Patel Pratik Patel
30 ago 2018 13:41:39

@pratik-pratel Puedo suponer que copiaste y modificaste un poco tu consejo de https://jonathanbossenger.com/adding-the-cart-button-to-your-divi-shop-pages/, ¿no es así?

Twissell Twissell
30 ago 2018 16:25:36