¿Mostrar el botón "añadir al carrito" en cada listado de la página de categoría de productos?
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

¿Cómo puedo lograr esto? Enlace a la página del tema oma-fintess.com.ua
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' );
<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.
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 );
@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
Debes probar esto [add_to_cart id="27" style="border-right:1px solid #ccc"]
Pratik Patel
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-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