O gancho para o botão Adicionar ao carrinho AJAX?

4

Alguém aqui já teve a necessidade de adicionar o botão adicionar ao carrinho AJAX (aquele localizado nos arquivos do produto) em uma saída de postagem de consulta personalizada?

Você se importa em compartilhar o gancho? Eu não consigo encontrar o correto.

    
por Anriëtte Myburgh 19.06.2012 / 23:14

1 resposta

5

Pesquisando o código, é bem simples de encontrar.

Primeiro, veja o modelo usado para arquivos de produtos - /templates/archive-product.php . Entre outras coisas, configura as consultas regulares e começa a criar a marcação da página.

Mas quando ele realmente começa a passar por cada produto, ele delega o trabalho para /templates/loop-shop.php . Este modelo é carregado para cada produto e cria uma listagem usando o seguinte 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); ?>

A parte que nos interessa é a última ação: woocommerce_after_shop_loop_item . Está ligado em /woocommerce_template_actions.php à função woocommerce_template_loop_add_to_cart() .

Indo ainda mais fundo e parece que esta função é a que você precisa.

Como adicioná-lo

A maneira mais fácil de usar essa função é chamá-lo diretamente. Só sei que isso requer parâmetros, $post e $_product . O código a seguir o chamaria bem:

global $post; // Assuming it's already set up
$_product = &new woocommerce_product( $post->ID );

woocommerce_template_loop_add_to_cart( $post, $_product );

A própria função chama seu próprio echo s, então apenas chame diretamente.

    
por EAMann 20.06.2012 / 00:57