. */ // Do not allow directly accessing this file. if ( ! defined( 'ABSPATH' ) ) { exit( 'Direct script access denied.' ); } /** * The Sidebar Generator. */ class Sidebar_Generator { /** * The class constructor. * * @access public */ public function __construct() { add_action( 'init', [ $this, 'init' ] ); add_action( 'widgets_admin_page', [ $this, 'admin_page' ] ); add_action( 'admin_enqueue_scripts', [ $this, 'admin_enqueue_scripts' ] ); add_action( 'admin_print_scripts', [ $this, 'admin_print_scripts' ] ); } /** * Initializes the sidebar registration. * * @access public */ public function init() { if ( current_user_can( 'manage_options' ) ) { add_action( 'wp_ajax_add_sidebar', [ $this, 'add_sidebar' ] ); add_action( 'wp_ajax_remove_sidebar', [ $this, 'remove_sidebar' ] ); } // Go through each sidebar and register it. $sidebars = self::get_sidebars(); if ( is_array( $sidebars ) ) { foreach ( $sidebars as $sidebar ) { $sidebar_class = self::name_to_class( $sidebar ); register_sidebar( [ 'name' => $sidebar, 'id' => 'avada-custom-sidebar-' . strtolower( $sidebar_class ), 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ] ); } } } /** * Enqueues the necessary scripts. * * @access public */ public function admin_enqueue_scripts() { wp_enqueue_script( [ 'sack' ] ); } /** * Prints some additional scripts. * * @access public */ public function admin_print_scripts() { $ajax_add_sidebar_nonce = wp_create_nonce( 'add-sidebar' ); $ajax_remove_sidebar_nonce = wp_create_nonce( 'remove-sidebar' ); ?>

$sidebar_name ) : ?>

', '?', '[', ']', '{', '}', '|', ':' ], '', $name ); return strtolower( sanitize_html_class( $class ) ); } } $sbg = new Sidebar_Generator(); /** * Gets a generated sidebar. * * @param string $name The sidebar name. * @return true */ function generated_dynamic_sidebar( $name = '0' ) { Sidebar_Generator::get_sidebar( $name ); return true; } /** * Gets a generated sidebar. * * @param string $name The sidebar name. * @return true */ function generated_dynamic_sidebar_2( $name = '0' ) { Sidebar_Generator::get_sidebar_2( $name ); return true; } /* Omit closing PHP tag to avoid "Headers already sent" issues. */