in integration/FacebookWordpressWooCommerce.php [183:220]
public static function trackAddToCartEvent(
$cart_item_key, $product_id, $quantity, $variation_id) {
if (FacebookPluginUtils::isInternalUser()) {
return;
}
$server_event = ServerEventFactory::safeCreateEvent(
'AddToCart',
array(__CLASS__, 'createAddToCartEvent'),
array($cart_item_key, $product_id, $quantity),
self::TRACKING_NAME
);
// When AJAX is used to add an item to the cart
// The Conversions API event should be sent inmediately
// because the wp_footer action is not executed
$is_ajax_request = wp_doing_ajax();
FacebookServerSideEvent::getInstance()->track($server_event,
$is_ajax_request);
// If it is not an ajax request
// We show the pixel call in the footer
// Otherwise we add a filter
// to modify the ajax response
// and show the fbq call in the div #fb-pxl-ajax-code
if(!$is_ajax_request){
self::enqueuePixelCode($server_event);
}
else{
FacebookServerSideEvent::getInstance()->setPendingPixelEvent(
'addPixelCodeToAddToCartFragment',
$server_event
);
add_filter('woocommerce_add_to_cart_fragments',
array(__CLASS__, 'addPixelCodeToAddToCartFragment'));
}
}