web-dev-qa-db-ja.com

Woocommerceでカートに追加されている商品のJavascriptイベントは何ですか?

私はドキュメントやグーグルでこれを見つけることができないようです。したがって、基本的には、商品がカートに追加されたときに発生するJavascriptイベントを探しています。 何らかの理由で、カート通知に追加されたデフォルトが機能しません。

編集:だから私は私のテーマのデフォルトフォルダと私のwoocommerceテンプレートの上書きにwoocommerce.phpファイルを含めているので私は考えています。

2
Justin Beaudry

ソースを読んでください。 woocommerce-ajax.phpから(プラグインのルートフォルダにあります)

Javascript/Ajaxがカートに追加されます

/**
 * 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');

非AJAX:ページロードが必要

AJAXを使用していない場合は、initフックで実行されるwoocommerce-functions.phpのwoocommerce_add_to_cart_action()を使用しています。それは少し長いです、それで私はあなたにそれを言及されたファイルから読ませます。基本的にそれはadd-to-cart`クエリパラメータ(商品IDと同じであるべきです)を探し、そこから行きます。

1
helgatheviking