public static function safeCreateEvent()

in core/ServerEventFactory.php [177:312]


  public static function safeCreateEvent(
    $event_name,
    $callback,
    $arguments,
    $integration,
    $prefer_referrer_for_event_src = false)
  {
    $event = self::newEvent($event_name, $prefer_referrer_for_event_src);

    try {
      $data = call_user_func_array($callback, $arguments);
      $data_split = self::splitUserDataAndCustomData($data);
      $user_data_array = $data_split['user_data'];
      $custom_data_array = $data_split['custom_data'];
      $user_data_array =
        AAMFieldsExtractor::getNormalizedUserData($user_data_array);

      $user_data = $event->getUserData();

      if(
        array_key_exists(AAMSettingsFields::EMAIL, $user_data_array)
      ){
        $user_data->setEmail(
          $user_data_array[AAMSettingsFields::EMAIL]
        );
      }
      if(
        array_key_exists(AAMSettingsFields::FIRST_NAME, $user_data_array)
      ){
        $user_data->setFirstName(
          $user_data_array[AAMSettingsFields::FIRST_NAME]
        );
      }
      if(
        array_key_exists(AAMSettingsFields::LAST_NAME, $user_data_array)
      ){
        $user_data->setLastName(
          $user_data_array[AAMSettingsFields::LAST_NAME]
        );
      }
      if(
        array_key_exists(AAMSettingsFields::GENDER, $user_data_array)
      ){
        $user_data->setGender(
          $user_data_array[AAMSettingsFields::GENDER]
        );
      }
      if(
        array_key_exists(AAMSettingsFields::DATE_OF_BIRTH, $user_data_array)
      ){
        $user_data->setDateOfBirth(
          $user_data_array[AAMSettingsFields::DATE_OF_BIRTH]);
      }
      if(
        array_key_exists(AAMSettingsFields::EXTERNAL_ID, $user_data_array)
      ){
        $user_data->setExternalId(
          Util::hash($user_data_array[AAMSettingsFields::EXTERNAL_ID])
        );
      }
      if(
        array_key_exists(AAMSettingsFields::PHONE, $user_data_array)
      ){
        $user_data->setPhone(
          $user_data_array[AAMSettingsFields::PHONE]
        );
      }
      if(
        array_key_exists(AAMSettingsFields::CITY, $user_data_array)
      ){
        $user_data->setCity(
          $user_data_array[AAMSettingsFields::CITY]
        );
      }
      if(
        array_key_exists(AAMSettingsFields::STATE, $user_data_array)
      ){
        $user_data->setState(
          $user_data_array[AAMSettingsFields::STATE]
        );
      }
      if(
        array_key_exists(AAMSettingsFields::ZIP_CODE, $user_data_array)
      ){
        $user_data->setZipCode(
          $user_data_array[AAMSettingsFields::ZIP_CODE]
        );
      }
      if(
        array_key_exists(AAMSettingsFields::COUNTRY, $user_data_array)
      ){
        $user_data->setCountryCode(
          $user_data_array[AAMSettingsFields::COUNTRY]
        );
      }

      $custom_data = $event->getCustomData();
      $custom_data->addCustomProperty('fb_integration_tracking', $integration);

      if (!empty($data['currency'])) {
        $custom_data->setCurrency($custom_data_array['currency']);
      }

      if (!empty($data['value'])) {
        $custom_data->setValue($custom_data_array['value']);
      }

      if (!empty($data['contents'])) {
        $custom_data->setContents($custom_data_array['contents']);
      }

      if (!empty($data['content_ids'])) {
        $custom_data->setContentIds($custom_data_array['content_ids']);
      }

      if (!empty($data['content_type'])) {
        $custom_data->setContentType($custom_data_array['content_type']);
      }

      if (!empty($data['num_items'])) {
        $custom_data->setNumItems($custom_data_array['num_items']);
      }

      if (!empty($data['content_name'])) {
        $custom_data->setContentName($custom_data_array['content_name']);
      }

      if (!empty($data['content_category'])){
        $custom_data->setContentCategory($custom_data_array['content_category']);
      }
    } catch (\Exception $e) {
      // Need to log
    }

    return $event;
  }