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/clone/wp-conte.../plugins/popup-ma.../classes
File: Admin.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* Admin class
[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
class PUM_Admin {
[8] Fix | Delete
[9] Fix | Delete
public static function init() {
[10] Fix | Delete
PUM_Admin_BlockEditor::init();
[11] Fix | Delete
PUM_Admin_Pages::init();
[12] Fix | Delete
PUM_Admin_Ajax::init();
[13] Fix | Delete
PUM_Admin_Assets::init();
[14] Fix | Delete
PUM_Admin_Notices::init();
[15] Fix | Delete
PUM_Admin_Popups::init();
[16] Fix | Delete
PUM_Admin_Themes::init();
[17] Fix | Delete
PUM_Admin_Subscribers::init();
[18] Fix | Delete
PUM_Admin_Settings::init();
[19] Fix | Delete
PUM_Admin_Tools::init();
[20] Fix | Delete
PUM_Admin_Shortcode_UI::init();
[21] Fix | Delete
PUM_Upsell::init();
[22] Fix | Delete
PUM_Admin_Onboarding::init();
[23] Fix | Delete
[24] Fix | Delete
add_filter( 'user_has_cap', [ __CLASS__, 'prevent_default_theme_deletion' ], 10, 3 );
[25] Fix | Delete
add_filter( 'plugin_action_links', [ __CLASS__, 'plugin_action_links' ], 10, 2 );
[26] Fix | Delete
add_action( 'admin_init', [ __CLASS__, 'after_install' ] );
[27] Fix | Delete
add_action( 'admin_head', [ __CLASS__, 'clean_ui' ] );
[28] Fix | Delete
}
[29] Fix | Delete
[30] Fix | Delete
/**
[31] Fix | Delete
* Prevent user from deleting the current default popup_theme
[32] Fix | Delete
*
[33] Fix | Delete
* @param $allcaps
[34] Fix | Delete
* @param $caps
[35] Fix | Delete
* @param $args
[36] Fix | Delete
*
[37] Fix | Delete
* @return mixed
[38] Fix | Delete
*/
[39] Fix | Delete
public static function prevent_default_theme_deletion( $allcaps, $caps, $args ) {
[40] Fix | Delete
global $wpdb;
[41] Fix | Delete
if ( isset( $args[0] ) && isset( $args[2] ) && pum_get_option( 'default_theme' ) === $args[2] && 'delete_post' === $args[0] ) {
[42] Fix | Delete
$allcaps[ $caps[0] ] = false;
[43] Fix | Delete
}
[44] Fix | Delete
[45] Fix | Delete
return $allcaps;
[46] Fix | Delete
}
[47] Fix | Delete
[48] Fix | Delete
/**
[49] Fix | Delete
* Render plugin action links.
[50] Fix | Delete
*
[51] Fix | Delete
* @param $links
[52] Fix | Delete
* @param $file
[53] Fix | Delete
*
[54] Fix | Delete
* @return mixed
[55] Fix | Delete
*/
[56] Fix | Delete
public static function plugin_action_links( $links, $file ) {
[57] Fix | Delete
[58] Fix | Delete
if ( plugin_basename( POPMAKE ) === $file ) {
[59] Fix | Delete
$plugin_action_links = apply_filters(
[60] Fix | Delete
'pum_plugin_action_links',
[61] Fix | Delete
[
[62] Fix | Delete
'extend' => '<a href="' . admin_url( 'edit.php?post_type=popup&page=pum-extensions' ) . '">' . __( 'Integrations', 'popup-maker' ) . '</a>',
[63] Fix | Delete
'settings' => '<a href="' . admin_url( 'edit.php?post_type=popup&page=pum-settings' ) . '">' . __( 'Settings', 'popup-maker' ) . '</a>',
[64] Fix | Delete
]
[65] Fix | Delete
);
[66] Fix | Delete
[67] Fix | Delete
// TODO Rewrite this to take full advantage of our polyglot detection code in Alerts for translation requests.
[68] Fix | Delete
if ( substr( get_locale(), 0, 2 ) !== 'en' ) {
[69] Fix | Delete
$plugin_action_links = array_merge( [ 'translate' => '<a href="' . sprintf( 'https://translate.wordpress.org/locale/%s/default/wp-plugins/popup-maker', substr( get_locale(), 0, 2 ) ) . '" target="_blank">' . __( 'Translate', 'popup-maker' ) . '</a>' ], $plugin_action_links );
[70] Fix | Delete
}
[71] Fix | Delete
[72] Fix | Delete
foreach ( $plugin_action_links as $link ) {
[73] Fix | Delete
array_unshift( $links, $link );
[74] Fix | Delete
}
[75] Fix | Delete
}
[76] Fix | Delete
[77] Fix | Delete
return $links;
[78] Fix | Delete
}
[79] Fix | Delete
[80] Fix | Delete
/**
[81] Fix | Delete
* Post-installation
[82] Fix | Delete
*
[83] Fix | Delete
* Runs just after plugin installation and exposes the
[84] Fix | Delete
* popmake_after_install hook.
[85] Fix | Delete
*
[86] Fix | Delete
* @since 1.0
[87] Fix | Delete
* @return void
[88] Fix | Delete
*/
[89] Fix | Delete
public static function after_install() {
[90] Fix | Delete
[91] Fix | Delete
if ( ! is_admin() ) {
[92] Fix | Delete
return;
[93] Fix | Delete
}
[94] Fix | Delete
[95] Fix | Delete
$already_installed = get_option( '_pum_installed' );
[96] Fix | Delete
[97] Fix | Delete
// Exit if not in admin or the transient doesn't exist
[98] Fix | Delete
if ( false === $already_installed ) {
[99] Fix | Delete
do_action( 'pum_after_install' );
[100] Fix | Delete
[101] Fix | Delete
update_option( '_pum_installed', true );
[102] Fix | Delete
}
[103] Fix | Delete
}
[104] Fix | Delete
[105] Fix | Delete
/**
[106] Fix | Delete
* Cleans the UI area within our admin pages
[107] Fix | Delete
*
[108] Fix | Delete
* @since 1.12
[109] Fix | Delete
*/
[110] Fix | Delete
public static function clean_ui() {
[111] Fix | Delete
// Elementor shows an upsell notice for their popup builder targeting only our admin area. This removes that.
[112] Fix | Delete
if ( class_exists( 'Elementor\Plugin' ) && class_exists( 'Elementor\Core\Admin\Admin' ) && pum_is_admin_page() ) {
[113] Fix | Delete
$instance = Elementor\Plugin::instance();
[114] Fix | Delete
if ( isset( $instance->admin ) && is_a( $instance->admin, '\Elementor\Core\Admin\Admin' ) && method_exists( $instance->admin, 'get_component' ) ) {
[115] Fix | Delete
$notices = $instance->admin->get_component( 'admin-notices' );
[116] Fix | Delete
if ( false !== $notices && is_a( $notices, '\Elementor\Core\Admin\Admin_Notices' ) ) {
[117] Fix | Delete
remove_action( 'admin_notices', [ $notices, 'admin_notices' ], 20 );
[118] Fix | Delete
}
[119] Fix | Delete
}
[120] Fix | Delete
}
[121] Fix | Delete
}
[122] Fix | Delete
}
[123] Fix | Delete
[124] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function