File "class-lp-backward-plugins.php"
Full Path: /home/ubunrgit/public_html/wp-content/plugins/learnpress/inc/class-lp-backward-plugins.php
File size: 3.06 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Class LP_Backward_Addons
*
* @since 3.0.0
* @depecated 4.1.6.4
*/
class LP_Backward_Addons {
/**
* LP_Backward_Addons constructor.
*/
public function __construct() {
add_action( 'plugins_loaded', array( $this, 'deactivate_old_addons' ), - 100 );
add_action( 'admin_notices', array( $this, 'admin_notices' ) );
}
public function admin_notices() {
$invalid_plugins = get_transient( 'lp-deactivated-addons' );
delete_transient( 'lp-deactivated-addons' );
if ( ! $invalid_plugins ) {
return;
}
$plugin_names = array();
foreach ( $invalid_plugins as $plugin ) {
if ( ! file_exists( $plugin['path'] ) ) {
continue;
}
if ( get_plugin_data( $plugin['path'] ) ) {
$plugin_data = get_plugin_data( $plugin['path'] );
$plugin_names[] = $plugin_data['Name'];
}
}
?>
<div class="notice notice-warning">
<p>
<?php
echo sprintf(
__( 'There are some add-ons had gone outdated and might conflict with <strong>LearnPress</strong> that need to be deactivated. Please upgrade them to the newest version to ensure stability and performance of your site.', 'learnpress' ),
LEARNPRESS_VERSION
);
?>
</p>
<p><?php echo '<strong>' . join( '</strong>, <strong>', $plugin_names ) . '</strong>'; ?>.</p>
</div>
<?php
}
/**
* Hooked to plugins_loaded in highest priority and check if an addon
* is not valid with new structure present in LP 3 then remove it
* from activated plugins array
*/
public function deactivate_old_addons() {
$valid_plugins = wp_get_active_and_valid_plugins();
$active_plugins = get_option( 'active_plugins' );
$invalid_plugins = array();
$invalid_slug = false;
foreach ( $valid_plugins as $file ) {
$base_name = plugin_basename( $file );
if ( strpos( $base_name, 'learnpress-' ) !== 0 ) {
continue;
}
$path = dirname( $file );
// LP 3 addons usually have a file load.php in inc/incs folder
if ( file_exists( "$path/inc/load.php" ) || file_exists( "$path/incs/load.php" ) ) {
continue;
}
// Remove addon from activated plugins
if ( false !== ( $at = array_search( $base_name, $active_plugins ) ) ) { // phpcs:ignore
unset( $active_plugins[ $at ] );
$invalid_plugins[] = array(
'slug' => $base_name,
'path' => $file,
);
if ( preg_match( '!learnpress-(.*)/learnpress.php!', $base_name ) ) {
$invalid_slug = $base_name;
break;
}
}
}
if ( sizeof( $invalid_plugins ) ) {
// Re-update
update_option( 'active_plugins', $active_plugins );
if ( $invalid_slug ) {
wp_die(
sprintf(
__( 'LearnPress plugin slug should be <strong>%1$s</strong> to make sure it works properly. Currently, it is <strong>%2$s</strong>. Please correct it\'s name and active again. <a href="%3$s">Back</a>', 'learnpress' ),
'learnpress/learnpress.php',
$invalid_slug,
admin_url( 'plugins.php' )
)
);
}
set_transient( 'lp-deactivated-addons', $invalid_plugins );
wp_redirect( esc_url_raw( remove_query_arg( 'activate' ) ) );
exit();
}
}
}
new LP_Backward_Addons();