2016-08-09 13 views
0

Ich bin auf der Suche nach einer Möglichkeit, Add-In-Ereignis in Woocommerce zu verfolgen, schieben Sie die Daten auf ein paar Datenschichten (Produktname, Menge, Preis und SKU), damit ich sie in Google Tag Manager verfolgen kann. Wir sind ziemlich neu auf PHP und ich kann kein Beispiel online finden. Können Sie bitte eine Lösung vorschlagen?Tracking Woocommerce In den Warenkorb

Antwort

0

In Ordnung, also habe ich mir ein paar Optionen ausgedacht.

Option # 1

Dies ist keine sehr sauber Ansatz, sollte aber ohne viel Mühe arbeiten. Die Idee ist, die .single_add_to_cart_button zu binden, um eine AJAX-Anfrage durchzuführen, so dass Sie alle sichtbaren Daten auf der Produktseite auf ein PHP-Array übertragen können.

Fügen Sie diese JS auf die Produktseite:

jQuery('.single_add_to_cart_button').click(function(event) { 
    event.preventDefault(); 
    jQuery.ajax({ 
     url: '/path/to/wp-admin/admin-ajax.php', 
     type: 'POST', 
     data: { 
      action: 'get_add_to_cart_data', 
      sku: jQuery('...') // extract the data you want from the page 
     } 
     success: function(response) { 
      console.log(response); // log errors 
      jQuery('.single_add_to_cart_button').unbind('click').click(); // now add to cart 
     } 
    }); 
}); 

Dann, als serverseitige PHP:

function get_add_to_cart_data() { 
    $sku = $_POST['sku']; // all your data will be in this array 
    track(); // do whatever to track the data 
    echo "Success"; 
} 
// Now bind this function to use with AJAX in WordPress 
add_action('wp_ajax_get_add_to_cart_data', 'get_add_to_cart_data'); 
add_action('wp_ajax_nopriv_get_add_to_cart_data', 'get_add_to_cart_data'); 

Option # 2

ziehe ich diese Idee, aber ich haven‘ t es vollständig getestet. Sie werden den woocommerce_add_cart_item Filter verwenden, mit etwas wie dem folgenden in PHP:

function track_cart_item($cart_array) { 
    track($cart_array); // this array should contain most (all?) the data you want to use 
} 
add_filter('woocommerce_add_cart_item', 'track_cart_item', 10, 1); 
Verwandte Themen