core/FacebookWordpressPixelInjection.php (56 lines of code) (raw):

<?php /* * Copyright (C) 2017-present, Meta, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2 of the License. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ /** * @package FacebookPixelPlugin */ namespace FacebookPixelPlugin\Core; defined('ABSPATH') or die('Direct access not allowed'); class FacebookWordpressPixelInjection { public static $renderCache = array(); public function __construct() { } public function inject() { $pixel_id = FacebookWordpressOptions::getPixelId(); if (FacebookPluginUtils::isPositiveInteger($pixel_id)) { add_action( 'wp_head', array($this, 'injectPixelCode')); add_action( 'wp_head', array($this, 'injectPixelNoscriptCode')); foreach (FacebookPluginConfig::integrationConfig() as $key => $value) { $class_name = 'FacebookPixelPlugin\\Integration\\'.$value; $class_name::injectPixelCode(); } add_action( 'wp_footer', array($this, 'sendPendingEvents')); } } public function sendPendingEvents(){ $pending_events = FacebookServerSideEvent::getInstance()->getPendingEvents(); if(count($pending_events) > 0){ do_action( 'send_server_events', $pending_events, count($pending_events) ); } } public function injectPixelCode() { $pixel_id = FacebookPixel::getPixelId(); if ( (isset(self::$renderCache[FacebookPluginConfig::IS_PIXEL_RENDERED]) && self::$renderCache[FacebookPluginConfig::IS_PIXEL_RENDERED] === true) || empty($pixel_id) ) { return; } self::$renderCache[FacebookPluginConfig::IS_PIXEL_RENDERED] = true; echo(FacebookPixel::getPixelBaseCode()); echo(FacebookPixel::getPixelInitCode( FacebookWordpressOptions::getAgentString(), FacebookWordpressOptions::getUserInfo())); echo(FacebookPixel::getPixelPageViewCode()); } public function injectPixelNoscriptCode() { echo(FacebookPixel::getPixelNoscriptCode()); } }