wake-up-neo.com

Der Haken für die AJAX In den Warenkorb Button?

Hat hier jemals jemand die Notwendigkeit gehabt, die Schaltfläche AJAX zum Einkaufswagen hinzufügen (die sich in den Produktarchiven befindet) in einer benutzerdefinierten Abfrage nach der Ausgabe hinzuzufügen?

Hast du etwas dagegen, den Haken zu teilen? Ich kann anscheinend nicht den richtigen finden.

4

Durch den Code zu stöbern, ist ziemlich einfach zu finden.

Schauen Sie sich zuerst die Vorlage an, die für Produktarchive verwendet wird - /templates/archive-product.php. Unter anderem werden die regulären Abfragen eingerichtet und das Markup der Seite erstellt.

Wenn es jedoch tatsächlich beginnt, die einzelnen Produkte zu durchlaufen, delegiert es die Arbeit an /templates/loop-shop.php. Diese Vorlage wird für jedes Produkt geladen und erstellt eine Liste mit dem folgenden Code:

<?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); ?>

Der Teil, der uns interessiert, ist die letzte Aktion: woocommerce_after_shop_loop_item. Es ist in /woocommerce_template_actions.php mit der Funktion woocommerce_template_loop_add_to_cart() verbunden.

Wenn Sie noch tiefer graben, ist diese Funktion anscheinend die richtige für Sie.

Wie man es hinzufügt

Die einfachste Möglichkeit, diese Funktion zu verwenden, besteht darin, sie direkt aufzurufen. Nur wissen, dass es Parameter erfordert, $post und $_product. Der folgende Code würde es gut nennen:

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

woocommerce_template_loop_add_to_cart( $post, $_product );

Die Funktion selbst ruft ihre eigenen echoname__s auf, also rufen Sie sie einfach direkt auf.

5
EAMann