我正在寻找一种方法来跟踪woocommerce中的添加到购物车事件,将数据推送到一些数据层(产品名称,数量,价格和sku),以便我可以在谷歌标签管理器中跟踪它们。我们是非常新的PHP,我似乎无法在网上找到任何例子。你能建议一个解决方案吗?
答案 0 :(得分:0)
好吧,所以我想出了几个选择。
这不是一个非常干净的方法,但应该没有太多麻烦。我们的想法是绑定.single_add_to_cart_button
以执行AJAX请求,以便您可以将产品页面中的所有可见数据传输到PHP数组。
将此JS添加到产品页面:
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
}
});
});
然后,作为服务器端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' );
我更喜欢这个想法,但我还没有完全测试过它。您将在PHP中使用woocommerce_add_cart_item
过滤器,如下所示:
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 );