Server IP : 192.158.238.246 / Your IP : 18.219.40.177 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/7779/cwd/plugins/code-snippets/php/ |
Upload File : |
<?php namespace Code_Snippets; /** * Class for loading active snippets of various types. * * @package Code_Snippets */ class Active_Snippets { /** * Cached list of active snippets. * * @var Snippet[] */ private array $active_snippets = []; /** * Class constructor. */ public function __construct() { add_action( 'init', array( $this, 'init' ) ); } /** * Initialise class functions. */ public function init() { add_action( 'wp_head', [ $this, 'load_head_content' ] ); add_action( 'wp_footer', [ $this, 'load_footer_content' ] ); } /** * Fetch active snippets for a given scope, and cache the data in this class. * * @param string|string[] $scope Snippet scope. * * @return array[][] */ protected function fetch_active_snippets( $scope ) { $scope_key = is_array( $scope ) ? implode( '|', $scope ) : $scope; if ( ! isset( $this->active_snippets[ $scope_key ] ) ) { $this->active_snippets[ $scope_key ] = code_snippets()->db->fetch_active_snippets( $scope ); } return $this->active_snippets[ $scope_key ]; } /** * Print snippet code fetched from the database from a certain scope. * * @param string $scope Name of scope to print. */ private function print_content_snippets( string $scope ) { $snippets_list = $this->fetch_active_snippets( [ 'head-content', 'footer-content' ] ); foreach ( $snippets_list as $snippets ) { foreach ( $snippets as $snippet ) { if ( $scope === $snippet['scope'] ) { // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped echo "\n", $snippet['code'], "\n"; } } } } /** * Print head content snippets. */ public function load_head_content() { $this->print_content_snippets( 'head-content' ); } /** * Print footer content snippets. */ public function load_footer_content() { $this->print_content_snippets( 'footer-content' ); } }