updated plugin W3 Total Cache version 2.5.0

This commit is contained in:
2023-10-22 22:21:26 +00:00
committed by Gitium
parent 2f6b5b6047
commit 9e3fa792d7
255 changed files with 10113 additions and 23010 deletions

View File

@ -1,27 +1,40 @@
<?php
/**
* File: Util_Admin.php
*
* @package W3TC
*/
namespace W3TC;
/**
* Class: Util_Admin
*/
class Util_Admin {
/**
* Redirects when in WP Admin
* Redirects when in WP Admin.
*
* @param array $params
* @param bool $check_referrer
* @param string $page
* @static
*
* @param array $params Parameters.
* @param bool $check_referrer Check referrer.
* @param string $page Page.
*/
static public function redirect( $params = array(), $check_referrer = false, $page = '' ) {
$url = Util_Request::get_string( 'redirect' );
public static function redirect( $params = array(), $check_referrer = false, $page = '' ) {
$url = Util_Request::get_string( 'redirect' );
$page_url = Util_Request::get_string( 'page' );
if ( $url == '' ) {
if ( $check_referrer && !empty( $_SERVER['HTTP_REFERER'] ) ) {
if ( empty( $url ) ) {
if ( $check_referrer && ! empty( $_SERVER['HTTP_REFERER'] ) ) {
$url = isset( $_SERVER['HTTP_REFERER'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_REFERER'] ) ) : '';
} else {
$url = 'admin.php';
if ( empty( $page ) )
if ( empty( $page ) ) {
$page = $page_url;
$params = array_merge( array(
'page' => $page
), $params );
}
$params = array_merge( array( 'page' => $page ), $params );
}
}
@ -29,164 +42,207 @@ class Util_Admin {
}
/**
* Redirect function to current admin page with errors and messages specified
* Redirect function to current admin page with errors and messages specified.
*
* @param array $params
* @param array $errors
* @param array $notes
* @param bool $check_referrer
* @static
*
* @param array $params Parameters.
* @param array $errors Errors.
* @param array $notes Notes.
* @param bool $check_referrer Check referrer.
* @return void
*/
static public function redirect_with_custom_messages( $params, $errors = null,
$notes = null, $check_referrer = false ) {
if ( empty( $errors ) && Util_Admin::single_system_item( $notes ) ) {
Util_Admin::redirect( array_merge( $params, array(
'w3tc_note' => $notes[0] ) ), $check_referrer );
public static function redirect_with_custom_messages( $params, $errors = null, $notes = null, $check_referrer = false ) {
if ( empty( $errors ) && self::single_system_item( $notes ) ) {
self::redirect( array_merge( $params, array( 'w3tc_note' => $notes[0] ) ), $check_referrer );
return;
}
if ( Util_Admin::single_system_item( $errors ) && empty( $notes ) ) {
Util_Admin::redirect( array_merge( $params, array(
'w3tc_error' => $errors[0] ) ), $check_referrer );
if ( self::single_system_item( $errors ) && empty( $notes ) ) {
self::redirect( array_merge( $params, array( 'w3tc_error' => $errors[0] ) ), $check_referrer );
return;
}
$message_id = uniqid();
set_transient( 'w3tc_message',
update_option(
'w3tc_message',
array(
$message_id => array( 'errors' => $errors, 'notes' => $notes )
), 600 );
$message_id => array(
'errors' => $errors,
'notes' => $notes,
),
),
'yes'
);
Util_Admin::redirect( array_merge( $params, array(
'w3tc_message' => $message_id ) ), $check_referrer );
self::redirect( array_merge( $params, array( 'w3tc_message' => $message_id ) ), $check_referrer );
}
/**
* Special redirect with ability to pass custom_message_id based on $data
* Special redirect with ability to pass custom_message_id based on $data.
* query_string
* actions - which actions to call on render
* errors
* notes
*
* @static
*
* @param array $data Data.
*/
static public function redirect_with_custom_messages2( $data ) {
if ( !isset( $data['query_string']['page'] ) ) {
$data['query_string']['page'] =
Util_Request::get_string( 'page' );
if ( $data['query_string']['page'] == 'w3tc_extensions' ) {
$data['query_string']['extension'] =
Util_Request::get_string( 'extension' );
$data['query_string']['action'] =
Util_Request::get_string( 'action' );
public static function redirect_with_custom_messages2( $data ) {
if ( ! isset( $data['query_string']['page'] ) ) {
$data['query_string']['page'] = Util_Request::get_string( 'page' );
if ( 'w3tc_extensions' === $data['query_string']['page'] ) {
$data['query_string']['extension'] = Util_Request::get_string( 'extension' );
$data['query_string']['action'] = Util_Request::get_string( 'action' );
}
}
$message_id = uniqid();
set_transient( 'w3tc_message', array( $message_id => $data ), 600 );
update_option( 'w3tc_message', array( $message_id => $data ), 'yes' );
$data['query_string']['w3tc_message'] = $message_id;
Util_Environment::redirect( 'admin.php', $data['query_string'] );
}
static public function custom_message_id( $errors = null, $notes = null ) {
/**
* Custom message id.
*
* @static
*
* @param array $errors Errors.
* @param array $notes Notes.
*/
public static function custom_message_id( $errors = null, $notes = null ) {
$message_id = uniqid();
set_transient( 'w3tc_message',
update_option(
'w3tc_message',
array(
$message_id => array( 'errors' => $errors, 'notes' => $notes )
), 600 );
$message_id => array(
'errors' => $errors,
'notes' => $notes,
),
),
'yes'
);
return 'w3tc_message=' . $message_id;
}
/*
* Checks if contains single message item
/**
* Checks if contains single message item.
*
* @param $a array
* @return boolean
* @static
*
* @param array $a Array.
* @return bool
*/
static public function single_system_item( $a ) {
if ( !is_array( $a ) || count( $a ) != 1 )
public static function single_system_item( $a ) {
if ( ! is_array( $a ) || count( $a ) !== 1 ) {
return false;
}
$first_key = array_keys( $a );
$first_key = $first_key[0];
$pos = strpos( $a[$first_key], ' ' );
if ( $pos === false )
$pos = strpos( $a[ $first_key ], ' ' );
if ( false === $pos ) {
return true;
}
return false;
}
/**
* Save config, can't decline save process. (difference from action_save)
* Save config, can't decline save process. (difference from action_save).
*
* Do some actions on config keys update.
*
* Do some actions on config keys update
* Used in several places such as:
*
* 1. common config save
* 2. import settings
*
* @param Config $current_config
* @param Config $new_config
* @static
*
* @param Config $current_config Current config.
* @param Config $new_config New config.
* @return bool
* @throws Exception
* @throws \Exception Exception.
*/
static public function config_save( $current_config, $new_config ) {
public static function config_save( $current_config, $new_config ) {
$master_config = ( $new_config->is_master() ? $new_config : Dispatcher::config_master() );
if ( $master_config->get_integer( 'common.instance_id', 0 ) == 0 ) {
$master_config->set( 'common.instance_id', mt_rand() );
if ( !$new_config->is_master() )
if ( ! $new_config->is_master() ) {
$master_config->save();
}
}
$old_config = new Config();
$browsercache_dependencies = array();
if ( $new_config->get_boolean( 'browsercache.enabled' ) ) {
$browsercache_dependencies = array_merge( $browsercache_dependencies, array(
$browsercache_dependencies = array_merge(
$browsercache_dependencies,
array(
'browsercache.rewrite',
'browsercache.cssjs.replace',
'browsercache.html.replace',
'browsercache.other.replace'
) );
'browsercache.other.replace',
)
);
if ( $new_config->get_boolean( 'browsercache.cssjs.replace' ) ) {
$browsercache_dependencies = array_merge( $browsercache_dependencies, array(
$browsercache_dependencies = array_merge(
$browsercache_dependencies,
array(
'browsercache.cssjs.compression',
'browsercache.cssjs.expires',
'browsercache.cssjs.lifetime',
'browsercache.cssjs.cache.control',
'browsercache.cssjs.cache.policy',
'browsercache.cssjs.etag',
'browsercache.cssjs.w3tc'
) );
'browsercache.cssjs.w3tc',
)
);
}
if ( $new_config->get_boolean( 'browsercache.html.replace' ) ) {
$browsercache_dependencies = array_merge( $browsercache_dependencies, array(
$browsercache_dependencies = array_merge(
$browsercache_dependencies,
array(
'browsercache.html.compression',
'browsercache.html.expires',
'browsercache.html.lifetime',
'browsercache.html.cache.control',
'browsercache.html.cache.policy',
'browsercache.html.etag',
'browsercache.html.w3tc'
) );
'browsercache.html.w3tc',
)
);
}
if ( $new_config->get_boolean( 'browsercache.other.replace' ) ) {
$browsercache_dependencies = array_merge( $browsercache_dependencies, array(
$browsercache_dependencies = array_merge(
$browsercache_dependencies,
array(
'browsercache.other.compression',
'browsercache.other.expires',
'browsercache.other.lifetime',
'browsercache.other.cache.control',
'browsercache.other.cache.policy',
'browsercache.other.etag',
'browsercache.other.w3tc'
) );
'browsercache.other.w3tc',
)
);
}
$old_bc_dependencies_values = array();
@ -209,7 +265,9 @@ class Util_Admin {
$cache_flush = Dispatcher::component( 'CacheFlush' );
if ( $cache_flush->flushable_posts() ) {
$pgcache_dependencies = array_merge( $browsercache_dependencies, array(
$pgcache_dependencies = array_merge(
$browsercache_dependencies,
array(
'pgcache.debug',
'pgcache.cache.query',
'pgcache.cache.home',
@ -236,27 +294,25 @@ class Util_Admin {
'objectcache.enabled',
'minify.enabled',
'mobile.enabled',
'referrer.enabled'
) );
'referrer.enabled',
)
);
if ( $new_config->get_boolean( 'pgcache.mirrors.enabled' ) ) {
$pgcache_dependencies = array_merge( $pgcache_dependencies, array(
'pgcache.mirrors.home_urls'
) );
$pgcache_dependencies = array_merge( $pgcache_dependencies, array( 'pgcache.mirrors.home_urls' ) );
}
if ( $new_config->get_boolean( 'dbcache.enabled' ) ) {
$pgcache_dependencies = array_merge( $pgcache_dependencies, array(
'dbcache.debug'
) );
$pgcache_dependencies = array_merge( $pgcache_dependencies, array( 'dbcache.debug' ) );
}
if ( $new_config->get_boolean( 'objectcache.enabled' ) ) {
$pgcache_dependencies = array_merge( $pgcache_dependencies, array(
'objectcache.debug'
) );
if ( $new_config->getf_boolean( 'objectcache.enabled' ) ) {
$pgcache_dependencies = array_merge( $pgcache_dependencies, array( 'objectcache.debug' ) );
}
if ( $new_config->get_boolean( 'minify.enabled' ) ) {
$pgcache_dependencies = array_merge( $pgcache_dependencies, array(
$pgcache_dependencies = array_merge(
$pgcache_dependencies,
array(
'minify.auto',
'minify.debug',
'minify.rewrite',
@ -277,17 +333,16 @@ class Util_Admin {
'minify.htmltidy.options.wrap',
'minify.reject.logged',
'minify.reject.ua',
'minify.reject.uri'
) );
'minify.reject.uri',
)
);
}
/**
*
*
* @var W3_ModuleStatus $modules
*/
$modules = Dispatcher::component( 'ModuleStatus' );
if ( $modules->is_running( 'cdn' ) ) {
$pgcache_dependencies = array_merge( $pgcache_dependencies, array(
$pgcache_dependencies = array_merge(
$pgcache_dependencies,
array(
'cdn.enabled',
'cdn.debug',
'cdn.engine',
@ -323,31 +378,29 @@ class Util_Admin {
'cdn.reject.roles',
'cdn.reject.ua',
'cdn.reject.uri',
'cdn.reject.files'
) );
} elseif ( $old_config->get_boolean( 'cdn.enabled' ) && !$new_config->get_boolean( 'cdn.enabled' ) ) {
'cdn.reject.files',
)
);
} elseif ( $old_config->get_boolean( 'cdn.enabled' ) && ! $new_config->get_boolean( 'cdn.enabled' ) ) {
$pgcache_dependencies = array_merge( $pgcache_dependencies, array( 'cdn.enabled' ) );
}
if ( $new_config->get_boolean( 'mobile.enabled' ) ) {
$pgcache_dependencies = array_merge( $pgcache_dependencies, array(
'mobile.rgroups'
) );
$pgcache_dependencies = array_merge( $pgcache_dependencies, array( 'mobile.rgroups' ) );
}
if ( $new_config->get_boolean( 'referrer.enabled' ) ) {
$pgcache_dependencies = array_merge( $pgcache_dependencies, array(
'referrer.rgroups'
) );
$pgcache_dependencies = array_merge( $pgcache_dependencies, array( 'referrer.rgroups' ) );
}
if ( $new_config->get_boolean( 'browsercache.enabled' ) &&
$new_config->get_string( 'pgcache.engine' ) == 'file_generic' ) {
$pgcache_dependencies = array_merge( $pgcache_dependencies, array(
if ( $new_config->get_boolean( 'browsercache.enabled' ) && $new_config->get_string( 'pgcache.engine' ) === 'file_generic' ) {
$pgcache_dependencies = array_merge(
$pgcache_dependencies,
array(
'browsercache.html.last_modified',
'browsercache.other.last_modified'
) );
'browsercache.other.last_modified',
)
);
}
$old_pgcache_dependencies_values = array();
@ -368,17 +421,22 @@ class Util_Admin {
* Show need empty minify notification
*/
if ( $current_config->get_boolean( 'minify.enabled' ) && $new_config->get_boolean( 'minify.enabled' ) && ( ( $new_config->get_boolean( 'minify.css.enable' ) && ( $new_config->get_boolean( 'minify.auto' ) || count( $new_config->get_array( 'minify.css.groups' ) ) ) ) || ( $new_config->get_boolean( 'minify.js.enable' ) && ( $new_config->get_boolean( 'minify.auto' ) || count( $new_config->get_array( 'minify.js.groups' ) ) ) ) ) ) {
$minify_dependencies = array_merge( $browsercache_dependencies, array(
$minify_dependencies = array_merge(
$browsercache_dependencies,
array(
'minify.auto',
'minify.debug',
'minify.options',
'minify.symlinks',
'minify.css.enable',
'minify.js.enable'
) );
'minify.js.enable',
)
);
if ( $new_config->get_boolean( 'minify.css.enable' ) && ( $new_config->get_boolean( 'minify.auto' ) || count( $new_config->get_array( 'minify.css.groups' ) ) ) ) {
$minify_dependencies = array_merge( $minify_dependencies, array(
$minify_dependencies = array_merge(
$minify_dependencies,
array(
'minify.css.engine',
'minify.css.method',
'minify.css.strip.comments',
@ -404,12 +462,15 @@ class Util_Admin {
'minify.csstidy.options.css_level',
'minify.csstidy.options.preserve_css',
'minify.csstidy.options.timestamp',
'minify.csstidy.options.template'
) );
'minify.csstidy.options.template',
)
);
}
if ( $new_config->get_boolean( 'minify.js.enable' ) && ( $new_config->get_boolean( 'minify.auto' ) || count( $new_config->get_array( 'minify.js.groups' ) ) ) ) {
$minify_dependencies = array_merge( $minify_dependencies, array(
$minify_dependencies = array_merge(
$minify_dependencies,
array(
'minify.js.engine',
'minify.js.method',
'minify.js.combine.header',
@ -427,21 +488,15 @@ class Util_Admin {
'minify.ccjs.path.java',
'minify.ccjs.path.jar',
'minify.ccjs.options.compilation_level',
'minify.ccjs.options.formatting'
) );
'minify.ccjs.options.formatting',
)
);
}
/**
*
*
* @var W3_ModuleStatus $modules
*/
$modules = Dispatcher::component( 'ModuleStatus' );
if ( $modules->is_running( 'cdn' ) ) {
$minify_dependencies = array_merge( $minify_dependencies, array(
'cdn.engine', 'cdn.enabled'
) );
} elseif ( $old_config->get_boolean( 'cdn.enabled' ) && !$new_config->get_boolean( 'cdn.enabled' ) ) {
$minify_dependencies = array_merge( $minify_dependencies, array( 'cdn.engine', 'cdn.enabled' ) );
} elseif ( $old_config->get_boolean( 'cdn.enabled' ) && ! $new_config->get_boolean( 'cdn.enabled' ) ) {
$minify_dependencies = array_merge( $minify_dependencies, array( 'cdn.enabled' ) );
}
@ -459,11 +514,11 @@ class Util_Admin {
}
}
if ( $new_config->get_boolean( 'cdn.enabled' ) && !Cdn_Util::is_engine_mirror( $new_config->get_string( 'cdn.engine' ) ) ) {
if ( $new_config->get_boolean( 'cdn.enabled' ) && ! Cdn_Util::is_engine_mirror( $new_config->get_string( 'cdn.engine' ) ) ) {
/**
* Show notification when CDN enabled
*/
if ( !$old_config->get_boolean( 'cdn.enabled' ) ) {
if ( ! $old_config->get_boolean( 'cdn.enabled' ) ) {
$state = Dispatcher::config_state();
$state->set( 'cdn.show_note_cdn_upload', true );
$state->save();
@ -472,9 +527,7 @@ class Util_Admin {
/**
* Show notification when Browser Cache settings changes
*/
$cdn_dependencies = array(
'browsercache.enabled'
);
$cdn_dependencies = array( 'browsercache.enabled' );
if ( $new_config->get_boolean( 'cdn.enabled' ) ) {
$cdn_dependencies = array(
@ -498,7 +551,7 @@ class Util_Admin {
'browsercache.other.cache.control',
'browsercache.other.cache.policy',
'browsercache.other.etag',
'browsercache.other.w3tc'
'browsercache.other.w3tc',
);
}
@ -510,7 +563,7 @@ class Util_Admin {
$new_cdn_dependencies_values[] = $new_config->get( $cdn_dependency );
}
if ( serialize( $old_cdn_dependencies_values ) != serialize( $new_cdn_dependencies_values ) ) {
if ( serialize( $old_cdn_dependencies_values ) !== serialize( $new_cdn_dependencies_values ) ) {
$state = Dispatcher::config_state();
$state->set( 'cdn.show_note_cdn_reupload', true );
$state->save();
@ -520,10 +573,10 @@ class Util_Admin {
/**
* Show need empty object cache notification
*/
if ( $current_config->get_boolean( 'objectcache.enabled' ) ) {
if ( $current_config->getf_boolean( 'objectcache.enabled' ) ) {
$objectcache_dependencies = array(
'objectcache.groups.global',
'objectcache.groups.nonpersistent'
'objectcache.groups.nonpersistent',
);
$old_objectcache_dependencies_values = array();
@ -548,22 +601,21 @@ class Util_Admin {
try {
$new_config->save();
} catch ( \Exception $ex ) {
// try to fix environment, it potentially can be fixed silently
// dont show error here, it will be called again later
// in admin_notices
// try to fix environment, it potentially can be fixed silently don't show error here, it will be called again later in admin_notices.
try {
$environment = Dispatcher::component( 'Root_Environment' );
$environment->fix_in_wpadmin( $new_config );
} catch ( \Exception $ex ) {
} catch ( \Exception $ex ) { // phpcs:ignore Generic.CodeAnalysis.EmptyStatement.DetectedCatch
// Do nothing.
}
// retry save process and complain now on failure
// Retry save process and complain now on failure.
try {
$new_config->save();
} catch ( \Exception $ex ) {
throw new \Exception(
'<strong>Can\'t change configuration</strong>: ' .
$ex->getMessage() );
'<strong>Can\'t change configuration</strong>: ' . $ex->getMessage()
);
}
}
@ -584,7 +636,7 @@ class Util_Admin {
w3tc_dbcache_flush();
}
if ( $old_config->get_string( 'objectcache.engine' ) != $new_config->get_string( 'objectcache.engine' ) || $old_config->get_string( 'objectcache.enabled' ) != $new_config->get_string( 'objectcache.enabled' ) ) {
if ( $old_config->get_string( 'objectcache.engine' ) != $new_config->get_string( 'objectcache.engine' ) || $old_config->getf_boolean( 'objectcache.enabled' ) !== $new_config->getf_boolean( 'objectcache.enabled' ) ) {
w3tc_objectcache_flush();
}
@ -620,8 +672,8 @@ class Util_Admin {
* Auto upload browsercache files to CDN
*/
if ( $new_config->get_boolean( 'cdn.enabled' ) && $new_config->get_string( 'cdn.engine' ) == 'ftp' ) {
Util_Admin::cdn_delete_browsercache( $current_config );
Util_Admin::cdn_upload_browsercache( $current_config );
self::cdn_delete_browsercache( $current_config );
self::cdn_upload_browsercache( $current_config );
}
return true;
@ -630,11 +682,13 @@ class Util_Admin {
/**
* Uploads minify files to CDN
* Uploads minify files to CDN.
*
* @static
*
* @return void
*/
static public function cdn_upload_minify() {
public static function cdn_upload_minify() {
$w3_plugin_cdn = Dispatcher::component( 'Cdn_Plugin' );
$common = Dispatcher::component( 'Cdn_Core' );
@ -644,22 +698,27 @@ class Util_Admin {
$results = array();
foreach ( $files as $file ) {
$upload[] = $common->build_file_descriptor( $common->docroot_filename_to_absolute_path( $file ),
$common->uri_to_cdn_uri( $common->docroot_filename_to_uri( $file ) ) );
$upload[] = $common->build_file_descriptor(
$common->docroot_filename_to_absolute_path( $file ),
$common->uri_to_cdn_uri( $common->docroot_filename_to_uri( $file ) )
);
}
$common->upload( $upload, true, $results );
}
/**
* Uploads Browser Cache .htaccess to FTP
* Uploads Browser Cache .htaccess to FTP.
*
* @var Config $config
* @static
*
* @param Config $config Config.
* @return void
*/
static public function cdn_upload_browsercache( $config ) {
public static function cdn_upload_browsercache( $config ) {
$common = Dispatcher::component( 'Cdn_Core' );
$Cdn_Core_Admin = Dispatcher::component( 'Cdn_Core_Admin' );
Dispatcher::component( 'Cdn_Core_Admin' );
$ce = Dispatcher::component( 'Cdn_Environment' );
$rules = $ce->rules_generate_for_ftp( $config );
@ -681,59 +740,84 @@ class Util_Admin {
}
/**
* Deletes Browser Cache .htaccess from FTP
* Deletes Browser Cache .htaccess from FTP.
*
* @static
*
* @return void
*/
static public function cdn_delete_browsercache() {
$common = Dispatcher::component( 'Cdn_Core' );
public static function cdn_delete_browsercache() {
$common = Dispatcher::component( 'Cdn_Core' );
$cdn_path = Util_Rule::get_cdn_rules_path();
$tmp_path = W3TC_CACHE_TMP_DIR . '/' . $cdn_path;
$results = array();
$delete = array(
$common->build_file_descriptor( $tmp_path, $cdn_path )
);
$results = array();
$delete = array( $common->build_file_descriptor( $tmp_path, $cdn_path ) );
$common->delete( $delete, false, $results );
}
/**
* Returns cookie domain
* Returns cookie domain.
*
* @static
*
* @return string
*/
static public function get_cookie_domain() {
public static function get_cookie_domain() {
$site_url = get_option( 'siteurl' );
$parse_url = @parse_url( $site_url );
if ( $parse_url && !empty( $parse_url['host'] ) ) {
if ( $parse_url && ! empty( $parse_url['host'] ) ) {
return $parse_url['host'];
}
return isset( $_SERVER['HTTP_HOST'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) ) : '';
}
/*
* Returns current w3tc admin page
/**
* Returns current w3tc admin page.
*
* @static
*
* @return string
*/
static public function get_current_page() {
public static function get_current_page() {
$page = Util_Request::get_string( 'page' );
if ( substr( $page, 0, 5 ) == 'w3tc_' )
if ( substr( $page, 0, 5 ) === 'w3tc_' ) {
return $page;
}
return 'w3tc_dashboard';
}
/**
* Check if current page is a W3TC admin page
* Returns current w3tc extension id.
*
* @static
*
* @return string
*/
public static function get_current_extension() {
$page = Util_Request::get_string( 'page' );
$extension = Util_Request::get_string( 'extension' );
if ( substr( $page, 0, 5 ) === 'w3tc_' && ! empty( $extension ) ) {
return $extension;
}
return '';
}
/**
* Check if current page is a W3TC admin page.
*
* @static
*
* @return bool
*/
static public function is_w3tc_admin_page() {
public static function is_w3tc_admin_page() {
$page_val = Util_Request::get_string( 'page' );
if ( ! empty( $page_val ) && 'w3tc_' === substr( $page_val, 0, 5 ) ) {
return true;
@ -749,11 +833,13 @@ class Util_Admin {
/**
* Returns current WordPress page
* Returns current WordPress page.
*
* @static
*
* @return string
*/
static public function get_current_wp_page() {
public static function get_current_wp_page() {
return Util_Request::get_string( 'page' );
}
}