¿El gancho para el botón Agregar al carrito de AJAX?

4

¿Alguien aquí ha tenido la necesidad de agregar el botón AJAX para agregar al carrito (el que se encuentra en los archivos del producto) en una salida de consulta personalizada?

¿Te importa compartir el gancho? Parece que no puedo encontrar el correcto.

    
pregunta Anriëtte Myburgh 19.06.2012 - 23:14

1 respuesta

5

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.

    
respondido por el EAMann 20.06.2012 - 00:57

Lea otras preguntas en las etiquetas