Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/wp-conte.../plugins/popup-ma.../trunk/classes/Admin
File: Pages.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* Class for Admin Pages
[2] Fix | Delete
*
[3] Fix | Delete
* @package PUM
[4] Fix | Delete
* @copyright Copyright (c) 2023, Code Atlantic LLC
[5] Fix | Delete
*/
[6] Fix | Delete
[7] Fix | Delete
if ( ! defined( 'ABSPATH' ) ) {
[8] Fix | Delete
exit;
[9] Fix | Delete
}
[10] Fix | Delete
[11] Fix | Delete
[12] Fix | Delete
/**
[13] Fix | Delete
* Class PUM_Admin_Pages
[14] Fix | Delete
*
[15] Fix | Delete
* @since 1.7.0
[16] Fix | Delete
*/
[17] Fix | Delete
class PUM_Admin_Pages {
[18] Fix | Delete
[19] Fix | Delete
[20] Fix | Delete
/**
[21] Fix | Delete
* @var array
[22] Fix | Delete
*/
[23] Fix | Delete
public static $pages = [];
[24] Fix | Delete
[25] Fix | Delete
/**
[26] Fix | Delete
*
[27] Fix | Delete
*/
[28] Fix | Delete
public static function init() {
[29] Fix | Delete
add_action( 'admin_menu', [ __CLASS__, 'register_pages' ] );
[30] Fix | Delete
add_action( 'admin_head', [ __CLASS__, 'reorder_admin_submenu' ] );
[31] Fix | Delete
}
[32] Fix | Delete
[33] Fix | Delete
/**
[34] Fix | Delete
* Returns the requested pages handle.
[35] Fix | Delete
*
[36] Fix | Delete
* @param $key
[37] Fix | Delete
*
[38] Fix | Delete
* @return bool|mixed
[39] Fix | Delete
*/
[40] Fix | Delete
public static function get_page( $key ) {
[41] Fix | Delete
return isset( self::$pages[ $key ] ) ? self::$pages[ $key ] : false;
[42] Fix | Delete
}
[43] Fix | Delete
[44] Fix | Delete
/**
[45] Fix | Delete
* Creates the admin submenu pages under the Popup Maker menu and assigns their
[46] Fix | Delete
* links to global variables
[47] Fix | Delete
*/
[48] Fix | Delete
public static function register_pages() {
[49] Fix | Delete
[50] Fix | Delete
$admin_pages = apply_filters(
[51] Fix | Delete
'pum_admin_pages',
[52] Fix | Delete
[
[53] Fix | Delete
'subscribers' => [
[54] Fix | Delete
'page_title' => __( 'Subscribers', 'popup-maker' ),
[55] Fix | Delete
'capability' => 'manage_options',
[56] Fix | Delete
'callback' => [ 'PUM_Admin_Subscribers', 'page' ],
[57] Fix | Delete
],
[58] Fix | Delete
'settings' => [
[59] Fix | Delete
'page_title' => __( 'Settings', 'popup-maker' ),
[60] Fix | Delete
'capability' => 'manage_options',
[61] Fix | Delete
'callback' => [ 'PUM_Admin_Settings', 'page' ],
[62] Fix | Delete
],
[63] Fix | Delete
'extensions' => [
[64] Fix | Delete
'page_title' => __( 'Upgrade', 'popup-maker' ),
[65] Fix | Delete
'capability' => 'edit_posts',
[66] Fix | Delete
'callback' => [ 'PUM_Admin_Extend', 'page' ],
[67] Fix | Delete
],
[68] Fix | Delete
'support' => [
[69] Fix | Delete
'page_title' => __( 'Help & Support', 'popup-maker' ),
[70] Fix | Delete
'capability' => 'edit_posts',
[71] Fix | Delete
'callback' => [ 'PUM_Admin_Support', 'page' ],
[72] Fix | Delete
],
[73] Fix | Delete
'tools' => [
[74] Fix | Delete
'page_title' => __( 'Tools', 'popup-maker' ),
[75] Fix | Delete
'capability' => 'manage_options',
[76] Fix | Delete
'callback' => [ 'PUM_Admin_Tools', 'page' ],
[77] Fix | Delete
],
[78] Fix | Delete
]
[79] Fix | Delete
);
[80] Fix | Delete
[81] Fix | Delete
foreach ( $admin_pages as $key => $page ) {
[82] Fix | Delete
$page = wp_parse_args(
[83] Fix | Delete
$page,
[84] Fix | Delete
[
[85] Fix | Delete
'parent_slug' => 'edit.php?post_type=popup',
[86] Fix | Delete
'page_title' => '',
[87] Fix | Delete
'menu_title' => '',
[88] Fix | Delete
'capability' => 'manage_options',
[89] Fix | Delete
'menu_slug' => '',
[90] Fix | Delete
'callback' => '',
[91] Fix | Delete
]
[92] Fix | Delete
);
[93] Fix | Delete
[94] Fix | Delete
// Backward compatibility.
[95] Fix | Delete
$page['capability'] = apply_filters( 'popmake_admin_submenu_' . $key . '_capability', $page['capability'] );
[96] Fix | Delete
[97] Fix | Delete
if ( empty( $page['menu_slug'] ) ) {
[98] Fix | Delete
$page['menu_slug'] = 'pum-' . $key;
[99] Fix | Delete
}
[100] Fix | Delete
[101] Fix | Delete
if ( ! empty( $page['page_title'] ) && empty( $page['menu_title'] ) ) {
[102] Fix | Delete
$page['menu_title'] = $page['page_title'];
[103] Fix | Delete
} elseif ( ! empty( $page['menu_title'] ) && empty( $page['page_title'] ) ) {
[104] Fix | Delete
$page['page_title'] = $page['menu_title'];
[105] Fix | Delete
}
[106] Fix | Delete
[107] Fix | Delete
self::$pages[ $key ] = add_submenu_page( $page['parent_slug'], $page['page_title'], $page['menu_title'], $page['capability'], $page['menu_slug'], $page['callback'] );
[108] Fix | Delete
// For backward compatibility.
[109] Fix | Delete
$GLOBALS[ 'popmake_' . $key . '_page' ] = self::$pages[ $key ];
[110] Fix | Delete
}
[111] Fix | Delete
[112] Fix | Delete
// Add shortcut to theme editor from Appearance menu.
[113] Fix | Delete
add_theme_page( __( 'Popup Themes', 'popup-maker' ), __( 'Popup Themes', 'popup-maker' ), 'edit_posts', 'edit.php?post_type=popup_theme' );
[114] Fix | Delete
}
[115] Fix | Delete
[116] Fix | Delete
[117] Fix | Delete
/**
[118] Fix | Delete
* Submenu filter function. Tested with WordPress 4.1.1
[119] Fix | Delete
* Sort and order submenu positions to match our custom order.
[120] Fix | Delete
*
[121] Fix | Delete
* @since 1.4
[122] Fix | Delete
*/
[123] Fix | Delete
public static function reorder_admin_submenu() {
[124] Fix | Delete
global $submenu;
[125] Fix | Delete
[126] Fix | Delete
if ( isset( $submenu['edit.php?post_type=popup'] ) ) {
[127] Fix | Delete
// Sort the menu according to your preferences
[128] Fix | Delete
usort( $submenu['edit.php?post_type=popup'], [ __CLASS__, 'reorder_submenu_array' ] );
[129] Fix | Delete
}
[130] Fix | Delete
}
[131] Fix | Delete
[132] Fix | Delete
/**
[133] Fix | Delete
* Reorders the submenu by title.
[134] Fix | Delete
*
[135] Fix | Delete
* Forces $first_pages to load in order at the beginning of the menu
[136] Fix | Delete
* and $last_pages to load in order at the end. All remaining menu items will
[137] Fix | Delete
* go out in generic order.
[138] Fix | Delete
*
[139] Fix | Delete
* @since 1.4
[140] Fix | Delete
*
[141] Fix | Delete
* @param $a
[142] Fix | Delete
* @param $b
[143] Fix | Delete
*
[144] Fix | Delete
* @return int
[145] Fix | Delete
*/
[146] Fix | Delete
public static function reorder_submenu_array( $a, $b ) {
[147] Fix | Delete
$first_pages = apply_filters(
[148] Fix | Delete
'pum_admin_submenu_first_pages',
[149] Fix | Delete
[
[150] Fix | Delete
__( 'All Popups', 'popup-maker' ),
[151] Fix | Delete
__( 'Add New', 'popup-maker' ),
[152] Fix | Delete
__( 'All Themes', 'popup-maker' ),
[153] Fix | Delete
__( 'Categories', 'popup-maker' ),
[154] Fix | Delete
__( 'Tags', 'popup-maker' ),
[155] Fix | Delete
]
[156] Fix | Delete
);
[157] Fix | Delete
$last_pages = apply_filters(
[158] Fix | Delete
'pum_admin_submenu_last_pages',
[159] Fix | Delete
[
[160] Fix | Delete
__( 'Extend', 'popup-maker' ),
[161] Fix | Delete
__( 'Settings', 'popup-maker' ),
[162] Fix | Delete
__( 'Tools', 'popup-maker' ),
[163] Fix | Delete
__( 'Support Forum', 'popup-maker' ),
[164] Fix | Delete
__( 'Account', 'popup-maker' ),
[165] Fix | Delete
__( 'Contact Us', 'popup-maker' ),
[166] Fix | Delete
__( 'Help & Support', 'popup-maker' ),
[167] Fix | Delete
]
[168] Fix | Delete
);
[169] Fix | Delete
[170] Fix | Delete
$a_val = strip_tags( $a[0], false );
[171] Fix | Delete
$b_val = strip_tags( $b[0], false );
[172] Fix | Delete
[173] Fix | Delete
// Sort First Page Keys.
[174] Fix | Delete
if ( in_array( $a_val, $first_pages ) && ! in_array( $b_val, $first_pages ) ) {
[175] Fix | Delete
return - 1;
[176] Fix | Delete
} elseif ( ! in_array( $a_val, $first_pages ) && in_array( $b_val, $first_pages ) ) {
[177] Fix | Delete
return 1;
[178] Fix | Delete
} elseif ( in_array( $a_val, $first_pages ) && in_array( $b_val, $first_pages ) ) {
[179] Fix | Delete
$a_key = array_search( $a_val, $first_pages );
[180] Fix | Delete
$b_key = array_search( $b_val, $first_pages );
[181] Fix | Delete
[182] Fix | Delete
return ( $a_key < $b_key ) ? - 1 : 1;
[183] Fix | Delete
}
[184] Fix | Delete
[185] Fix | Delete
// Sort Last Page Keys.
[186] Fix | Delete
if ( in_array( $a_val, $last_pages ) && ! in_array( $b_val, $last_pages ) ) {
[187] Fix | Delete
return 1;
[188] Fix | Delete
} elseif ( ! in_array( $a_val, $last_pages ) && in_array( $b_val, $last_pages ) ) {
[189] Fix | Delete
return - 1;
[190] Fix | Delete
} elseif ( in_array( $a_val, $last_pages ) && in_array( $b_val, $last_pages ) ) {
[191] Fix | Delete
$a_key = array_search( $a_val, $last_pages );
[192] Fix | Delete
$b_key = array_search( $b_val, $last_pages );
[193] Fix | Delete
[194] Fix | Delete
return ( $a_key < $b_key ) ? - 1 : 1;
[195] Fix | Delete
}
[196] Fix | Delete
[197] Fix | Delete
// Sort remaining keys
[198] Fix | Delete
return $a > $b ? 1 : - 1;
[199] Fix | Delete
}
[200] Fix | Delete
}
[201] Fix | Delete
[202] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function