public static function trackAddToCartEvent()

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'));
    }
  }