| Server IP : 37.27.51.148 / Your IP : 37.27.51.148 Web Server : nginx/1.14.1 System : Linux libra 4.18.0-553.51.1.el8_10.x86_64 #1 SMP Wed Apr 30 20:24:04 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.3.31 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/html/wp-content/plugins/pixel-caffeine/includes/server-side/ |
Upload File : |
<?php
/**
* Factory class for the server side events
*
* @package Pixel Caffeine
*/
namespace PixelCaffeine\ServerSide;
use PixelCaffeine\Dependencies\FacebookAds\Object\ServerSide\ActionSource;
use PixelCaffeine\Dependencies\FacebookAds\Object\ServerSide\CustomData;
use PixelCaffeine\Dependencies\FacebookAds\Object\ServerSide\Event;
use PixelCaffeine\Dependencies\FacebookAds\Object\ServerSide\Util;
use PixelCaffeine\FB\User_Data_Factory;
/**
* Class Event_Factory
*
* @package PixelCaffeine\ServerSide
*/
class Event_Factory {
/**
* Create the event object instance
*
* @param Pixel_Event $pixel The event instance.
*
* @return Event
*/
public function create_event( Pixel_Event $pixel ) {
$event = ( new Event() )
->setEventName( $pixel->get_event_name() )
->setEventTime( time() )
->setEventSourceUrl( Util::getRequestUri() )
->setActionSource( ActionSource::WEBSITE )
->setUserData( User_Data_Factory::decorate_server_side( $pixel->get_user_data() ) )
->setCustomData( $this->create_custom_data( $pixel->get_event_data() ) );
$event_id = $pixel->get_event_id();
if ( null !== $event_id ) {
$event->setEventId( $event_id );
}
return $event;
}
/**
* Create the CustomData instance from the key=>value array
*
* @param array $data key=>value of the event data.
*
* @return CustomData
*/
public function create_custom_data( $data ) {
$custom_data = new CustomData( $data );
$custom_properties = array_diff_key( $data, CustomData::attributeMap() );
foreach ( $custom_properties as $key => $value ) {
$custom_data->addCustomProperty( $key, $value );
}
return $custom_data;
}
}