web-dev-qa-db-fra.com

Quel est l'événement Javascript pour un article ajouté au panier dans Woocommerce?

Je n'arrive pas à trouver cela dans la documentation ou via Google. Donc, fondamentalement, je recherche simplement l'événement Javascript qui se déclenche lorsqu'un élément est ajouté au panier. Pour une raison quelconque, ma valeur ajoutée par défaut à la notification de panier ne fonctionne pas.

EDIT: Je pense donc que je suis en train d’inclure le fichier woocommerce.php dans mon dossier par défaut de thèmes, ainsi que mes substitutions de modèles woocommerce.

2
Justin Beaudry

Lire la source. De woocommerce-ajax.php (dans le dossier racine du plugin)

Javascript/Ajax ajouter au panier

/**
 * AJAX add to cart
 *
 * @access public
 * @return void
 */
function woocommerce_ajax_add_to_cart() {

    global $woocommerce;

    check_ajax_referer( 'add-to-cart', 'security' );

    $product_id = (int) apply_filters('woocommerce_add_to_cart_product_id', $_POST['product_id']);

    $passed_validation = apply_filters('woocommerce_add_to_cart_validation', true, $product_id, 1);

    if ($passed_validation && $woocommerce->cart->add_to_cart($product_id, 1)) :
        // Return html fragments
        $data = apply_filters('add_to_cart_fragments', array());
        do_action( 'woocommerce_ajax_added_to_cart', $product_id);
    else :
        // If there was an error adding to the cart, redirect to the product page to show any errors
        $data = array(
            'error' => true,
            'product_url' => get_permalink( $product_id )
        );
        $woocommerce->set_messages();
    endif;

    echo json_encode( $data );

    die();
}

add_action('wp_ajax_woocommerce_add_to_cart', 'woocommerce_ajax_add_to_cart');
add_action('wp_ajax_nopriv_woocommerce_add_to_cart', 'woocommerce_ajax_add_to_cart');

Non-AJAX: Requiert un chargement de page

Si vous n'utilisez pas AJAX, vous utilisez alors la fonction woocommerce_add_to_cart_action() de woocommerce-functions.php qui s'exécute sur le hook init. Il est un peu long, je vous laisse donc le lire à partir du fichier mentionné. Fondamentalement, il recherche un paramètre de requête add-to-cart` (qui doit être égal à l'ID du produit) et va de là.

1
helgatheviking