Examinando el código, es bastante sencillo de encontrar.
Primero, observe la plantilla utilizada para los archivos del producto - /templates/archive-product.php
. Entre otras cosas, configura las consultas regulares y comienza a construir el marcado de la página.
Pero cuando realmente comienza a recorrer cada producto, delega el trabajo a /templates/loop-shop.php
. Esta plantilla se carga para cada producto y crea un listado utilizando el siguiente código:
<?php do_action('woocommerce_before_shop_loop_item'); ?>
<a href="<?php the_permalink(); ?>">
<?php do_action('woocommerce_before_shop_loop_item_title', $post, $_product); ?>
<h3><?php the_title(); ?></h3>
<?php do_action('woocommerce_after_shop_loop_item_title', $post, $_product); ?>
</a>
<?php do_action('woocommerce_after_shop_loop_item', $post, $_product); ?>
La parte que nos importa es la última acción: woocommerce_after_shop_loop_item
. Está conectado en /woocommerce_template_actions.php
a la función woocommerce_template_loop_add_to_cart()
.
Excavando aún más profundo, y parece que esta función es la que necesitas.
Cómo agregarlo
La forma más fácil de usar esta función es llamándola directamente. Solo se debe saber que requiere los parámetros, $post
y $_product
. El siguiente código lo consideraría correcto:
global $post; // Assuming it's already set up
$_product = &new woocommerce_product( $post->ID );
woocommerce_template_loop_add_to_cart( $post, $_product );
La función en sí misma llama a su propio echo
s, así que llámalo directamente.