2.3.x-and-above/upload/catalog/model/extension/module/facebook_business.php [953:1086]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        $general_filter_data = array(
            'sort'                => $sort,
            'order'               => $order,
            'start'               => ($page - 1) * $limit,
            'limit'               => $limit
        );

        if ($page_filter_data) {
            $filter_data = array_merge($page_filter_data, $general_filter_data);
        } else {
            $filter_data = $general_filter_data;
        }

        return $filter_data;
    }

    public function trackPixel($server_event_params, $event_name, $event_id) {
        if (($this->config->get('facebook_business_cookie_bar_status') && (empty($_COOKIE['fb_cookieconsent_status']) || $_COOKIE['fb_cookieconsent_status'] !== 'deny'))
          || $server_event_params == null) {
            return;
        }

        if ($event_name == 'Purchase' && empty($server_event_params['content_ids'])) {
            return;
        }

        if ($this->config->get('facebook_use_s2s')) {
            $user_pii_data = $this->getPii();

            $client_ips = explode(',', Util::getIpAddress());
            $client_ip = $client_ips[0];

            $user_agent = Util::getHttpUserAgent();

            try {
                if (!empty($client_ip) && !empty($user_agent)) {
                    $user_data = (new UserData())
                        ->setClientIpAddress($client_ip)
                        ->setClientUserAgent($user_agent)
                        ->setFbp(Util::getFbp())
                        ->setFbc(Util::getFbc());
                } else {
                    $user_data = (new UserData())
                        ->setFbp(Util::getFbp())
                        ->setFbc(Util::getFbc());
                }

                if ($user_pii_data) {
                    if (!empty($user_pii_data['em'])) {
                        $user_data->setEmail($user_pii_data['em']);
                    }
            
                    if (!empty($user_pii_data['fn'])) {
                        $user_data->setFirstName($user_pii_data['fn']);
                    }
            
                    if (!empty($user_pii_data['ln'])) {
                        $user_data->setLastName($user_pii_data['ln']);
                    }
            
                    if (!empty($user_pii_data['ph'])) {
                        $user_data->setPhone($user_pii_data['ph']);
                    }

                    if (!empty($user_pii_data['external_id'])) {
                        $user_data->setExternalId($user_pii_data['external_id']);
                    }
                }

                $event = (new Event())
                    ->setEventName($event_name)
                    ->setEventTime(time())
                    ->setEventId($event_id)
                    ->setEventSourceUrl(Util::getRequestUri())
                    ->setActionSource(ActionSource::WEBSITE)
                    ->setUserData($user_data)
                    ->setDataProcessingOptions(array())
                    ->setDataProcessingOptionsCountry(0)
                    ->setDataProcessingOptionsState(0)
                    ->setCustomData(new CustomData());

                $custom_data = $event->getCustomData();

                if (!empty($server_event_params['currency'])) {
                    $custom_data->setCurrency($server_event_params['currency']);
                }
          
                if (!empty($server_event_params['value'])) {
                    $custom_data->setValue($server_event_params['value']);
                }
          
                if (!empty($server_event_params['content_ids'])) {
                    $custom_data->setContentIds($server_event_params['content_ids']);
                }
          
                if (!empty($server_event_params['content_type'])) {
                    $custom_data->setContentType($server_event_params['content_type']);
                }
            } catch (Exception $ex) {
                $this->log->write('Facebook Business Extension :: Fail to create server event!');
                return false;
            }

            $api = Api::init(null, null, $this->config->get('facebook_system_user_access_token'), false);

            $agent_data = json_decode($this->getAgentParameters(), true);
            $agent = $agent_data['agent'];

            $async_request = (new EventRequestAsync($this->config->get('facebook_pixel_id')))
                  ->setEvents(array($event))
                  ->setPartnerAgent($agent);

            return $async_request->execute()
                ->then(
                    null,
                    function(\Exception $ex) {
                        // For debugging
                        // $this->log->write('Facebook Business Extension :: Fail to send server event! Error Message: ' . $ex->getMessage());
                    }
                );
        }
    }

    /**
     * Creates a new guid v4 - via https://stackoverflow.com/a/15875555
     * @return string A 36 character string containing dashes.
     */
    public function generateEventId() {
        $data = openssl_random_pseudo_bytes(16);

        $data[6] = chr(ord($data[6]) & 0x0f | 0x40); // set version to 0100
        $data[8] = chr(ord($data[8]) & 0x3f | 0x80); // set bits 6-7 to 10

        return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



3.0.x-and-above/upload/catalog/model/extension/module/facebook_business.php [956:1089]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        $general_filter_data = array(
            'sort'                => $sort,
            'order'               => $order,
            'start'               => ($page - 1) * $limit,
            'limit'               => $limit
        );

        if ($page_filter_data) {
            $filter_data = array_merge($page_filter_data, $general_filter_data);
        } else {
            $filter_data = $general_filter_data;
        }

        return $filter_data;
    }

    public function trackPixel($server_event_params, $event_name, $event_id) {
        if (($this->config->get('facebook_business_cookie_bar_status') && (empty($_COOKIE['fb_cookieconsent_status']) || $_COOKIE['fb_cookieconsent_status'] !== 'deny'))
          || $server_event_params == null) {
            return;
        }

        if ($event_name == 'Purchase' && empty($server_event_params['content_ids'])) {
            return;
        }

        if ($this->config->get('facebook_use_s2s')) {
            $user_pii_data = $this->getPii();

            $client_ips = explode(',', Util::getIpAddress());
            $client_ip = $client_ips[0];

            $user_agent = Util::getHttpUserAgent();

            try {
                if (!empty($client_ip) && !empty($user_agent)) {
                    $user_data = (new UserData())
                        ->setClientIpAddress($client_ip)
                        ->setClientUserAgent($user_agent)
                        ->setFbp(Util::getFbp())
                        ->setFbc(Util::getFbc());
                } else {
                    $user_data = (new UserData())
                        ->setFbp(Util::getFbp())
                        ->setFbc(Util::getFbc());
                }

                if ($user_pii_data) {
                    if (!empty($user_pii_data['em'])) {
                        $user_data->setEmail($user_pii_data['em']);
                    }
            
                    if (!empty($user_pii_data['fn'])) {
                        $user_data->setFirstName($user_pii_data['fn']);
                    }
            
                    if (!empty($user_pii_data['ln'])) {
                        $user_data->setLastName($user_pii_data['ln']);
                    }
            
                    if (!empty($user_pii_data['ph'])) {
                        $user_data->setPhone($user_pii_data['ph']);
                    }

                    if (!empty($user_pii_data['external_id'])) {
                        $user_data->setExternalId($user_pii_data['external_id']);
                    }
                }

                $event = (new Event())
                    ->setEventName($event_name)
                    ->setEventTime(time())
                    ->setEventId($event_id)
                    ->setEventSourceUrl(Util::getRequestUri())
                    ->setActionSource(ActionSource::WEBSITE)
                    ->setUserData($user_data)
                    ->setDataProcessingOptions(array())
                    ->setDataProcessingOptionsCountry(0)
                    ->setDataProcessingOptionsState(0)
                    ->setCustomData(new CustomData());

                $custom_data = $event->getCustomData();

                if (!empty($server_event_params['currency'])) {
                    $custom_data->setCurrency($server_event_params['currency']);
                }
          
                if (!empty($server_event_params['value'])) {
                    $custom_data->setValue($server_event_params['value']);
                }
          
                if (!empty($server_event_params['content_ids'])) {
                    $custom_data->setContentIds($server_event_params['content_ids']);
                }
          
                if (!empty($server_event_params['content_type'])) {
                    $custom_data->setContentType($server_event_params['content_type']);
                }
            } catch (Exception $ex) {
                $this->log->write('Facebook Business Extension :: Fail to create server event!');
                return false;
            }

            $api = Api::init(null, null, $this->config->get('facebook_system_user_access_token'), false);

            $agent_data = json_decode($this->getAgentParameters(), true);
            $agent = $agent_data['agent'];

            $async_request = (new EventRequestAsync($this->config->get('facebook_pixel_id')))
                  ->setEvents(array($event))
                  ->setPartnerAgent($agent);

            return $async_request->execute()
                ->then(
                    null,
                    function(\Exception $ex) {
                        // For debugging
                        // $this->log->write('Facebook Business Extension :: Fail to send server event! Error Message: ' . $ex->getMessage());
                    }
                );
        }
    }

    /**
     * Creates a new guid v4 - via https://stackoverflow.com/a/15875555
     * @return string A 36 character string containing dashes.
     */
    public function generateEventId() {
        $data = openssl_random_pseudo_bytes(16);

        $data[6] = chr(ord($data[6]) & 0x0f | 0x40); // set version to 0100
        $data[8] = chr(ord($data[8]) & 0x3f | 0x80); // set bits 6-7 to 10

        return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



