Edit File by line
/home/zeestwma/ajeebong.../wp-admin/includes
File: plugin.php
[2500] Fix | Delete
/**
[2501] Fix | Delete
* Tries to resume a single plugin.
[2502] Fix | Delete
*
[2503] Fix | Delete
* If a redirect was provided, we first ensure the plugin does not throw fatal
[2504] Fix | Delete
* errors anymore.
[2505] Fix | Delete
*
[2506] Fix | Delete
* The way it works is by setting the redirection to the error before trying to
[2507] Fix | Delete
* include the plugin file. If the plugin fails, then the redirection will not
[2508] Fix | Delete
* be overwritten with the success message and the plugin will not be resumed.
[2509] Fix | Delete
*
[2510] Fix | Delete
* @since 5.2.0
[2511] Fix | Delete
*
[2512] Fix | Delete
* @param string $plugin Single plugin to resume.
[2513] Fix | Delete
* @param string $redirect Optional. URL to redirect to. Default empty string.
[2514] Fix | Delete
* @return true|WP_Error True on success, false if `$plugin` was not paused,
[2515] Fix | Delete
* `WP_Error` on failure.
[2516] Fix | Delete
*/
[2517] Fix | Delete
function resume_plugin( $plugin, $redirect = '' ) {
[2518] Fix | Delete
/*
[2519] Fix | Delete
* We'll override this later if the plugin could be resumed without
[2520] Fix | Delete
* creating a fatal error.
[2521] Fix | Delete
*/
[2522] Fix | Delete
if ( ! empty( $redirect ) ) {
[2523] Fix | Delete
wp_redirect(
[2524] Fix | Delete
add_query_arg(
[2525] Fix | Delete
'_error_nonce',
[2526] Fix | Delete
wp_create_nonce( 'plugin-resume-error_' . $plugin ),
[2527] Fix | Delete
$redirect
[2528] Fix | Delete
)
[2529] Fix | Delete
);
[2530] Fix | Delete
[2531] Fix | Delete
// Load the plugin to test whether it throws a fatal error.
[2532] Fix | Delete
ob_start();
[2533] Fix | Delete
plugin_sandbox_scrape( $plugin );
[2534] Fix | Delete
ob_clean();
[2535] Fix | Delete
}
[2536] Fix | Delete
[2537] Fix | Delete
list( $extension ) = explode( '/', $plugin );
[2538] Fix | Delete
[2539] Fix | Delete
$result = wp_paused_plugins()->delete( $extension );
[2540] Fix | Delete
[2541] Fix | Delete
if ( ! $result ) {
[2542] Fix | Delete
return new WP_Error(
[2543] Fix | Delete
'could_not_resume_plugin',
[2544] Fix | Delete
__( 'Could not resume the plugin.' )
[2545] Fix | Delete
);
[2546] Fix | Delete
}
[2547] Fix | Delete
[2548] Fix | Delete
return true;
[2549] Fix | Delete
}
[2550] Fix | Delete
[2551] Fix | Delete
/**
[2552] Fix | Delete
* Renders an admin notice in case some plugins have been paused due to errors.
[2553] Fix | Delete
*
[2554] Fix | Delete
* @since 5.2.0
[2555] Fix | Delete
*
[2556] Fix | Delete
* @global string $pagenow The filename of the current screen.
[2557] Fix | Delete
* @global WP_Paused_Extensions_Storage $_paused_plugins
[2558] Fix | Delete
*/
[2559] Fix | Delete
function paused_plugins_notice() {
[2560] Fix | Delete
if ( 'plugins.php' === $GLOBALS['pagenow'] ) {
[2561] Fix | Delete
return;
[2562] Fix | Delete
}
[2563] Fix | Delete
[2564] Fix | Delete
if ( ! current_user_can( 'resume_plugins' ) ) {
[2565] Fix | Delete
return;
[2566] Fix | Delete
}
[2567] Fix | Delete
[2568] Fix | Delete
if ( ! isset( $GLOBALS['_paused_plugins'] ) || empty( $GLOBALS['_paused_plugins'] ) ) {
[2569] Fix | Delete
return;
[2570] Fix | Delete
}
[2571] Fix | Delete
[2572] Fix | Delete
$message = sprintf(
[2573] Fix | Delete
'<strong>%s</strong><br>%s</p><p><a href="%s">%s</a>',
[2574] Fix | Delete
__( 'One or more plugins failed to load properly.' ),
[2575] Fix | Delete
__( 'You can find more details and make changes on the Plugins screen.' ),
[2576] Fix | Delete
esc_url( admin_url( 'plugins.php?plugin_status=paused' ) ),
[2577] Fix | Delete
__( 'Go to the Plugins screen' )
[2578] Fix | Delete
);
[2579] Fix | Delete
wp_admin_notice(
[2580] Fix | Delete
$message,
[2581] Fix | Delete
array( 'type' => 'error' )
[2582] Fix | Delete
);
[2583] Fix | Delete
}
[2584] Fix | Delete
[2585] Fix | Delete
/**
[2586] Fix | Delete
* Renders an admin notice when a plugin was deactivated during an update.
[2587] Fix | Delete
*
[2588] Fix | Delete
* Displays an admin notice in case a plugin has been deactivated during an
[2589] Fix | Delete
* upgrade due to incompatibility with the current version of WordPress.
[2590] Fix | Delete
*
[2591] Fix | Delete
* @since 5.8.0
[2592] Fix | Delete
* @access private
[2593] Fix | Delete
*
[2594] Fix | Delete
* @global string $pagenow The filename of the current screen.
[2595] Fix | Delete
* @global string $wp_version The WordPress version string.
[2596] Fix | Delete
*/
[2597] Fix | Delete
function deactivated_plugins_notice() {
[2598] Fix | Delete
if ( 'plugins.php' === $GLOBALS['pagenow'] ) {
[2599] Fix | Delete
return;
[2600] Fix | Delete
}
[2601] Fix | Delete
[2602] Fix | Delete
if ( ! current_user_can( 'activate_plugins' ) ) {
[2603] Fix | Delete
return;
[2604] Fix | Delete
}
[2605] Fix | Delete
[2606] Fix | Delete
$blog_deactivated_plugins = get_option( 'wp_force_deactivated_plugins' );
[2607] Fix | Delete
$site_deactivated_plugins = array();
[2608] Fix | Delete
[2609] Fix | Delete
if ( false === $blog_deactivated_plugins ) {
[2610] Fix | Delete
// Option not in database, add an empty array to avoid extra DB queries on subsequent loads.
[2611] Fix | Delete
update_option( 'wp_force_deactivated_plugins', array(), false );
[2612] Fix | Delete
}
[2613] Fix | Delete
[2614] Fix | Delete
if ( is_multisite() ) {
[2615] Fix | Delete
$site_deactivated_plugins = get_site_option( 'wp_force_deactivated_plugins' );
[2616] Fix | Delete
if ( false === $site_deactivated_plugins ) {
[2617] Fix | Delete
// Option not in database, add an empty array to avoid extra DB queries on subsequent loads.
[2618] Fix | Delete
update_site_option( 'wp_force_deactivated_plugins', array() );
[2619] Fix | Delete
}
[2620] Fix | Delete
}
[2621] Fix | Delete
[2622] Fix | Delete
if ( empty( $blog_deactivated_plugins ) && empty( $site_deactivated_plugins ) ) {
[2623] Fix | Delete
// No deactivated plugins.
[2624] Fix | Delete
return;
[2625] Fix | Delete
}
[2626] Fix | Delete
[2627] Fix | Delete
$deactivated_plugins = array_merge( $blog_deactivated_plugins, $site_deactivated_plugins );
[2628] Fix | Delete
[2629] Fix | Delete
foreach ( $deactivated_plugins as $plugin ) {
[2630] Fix | Delete
if ( ! empty( $plugin['version_compatible'] ) && ! empty( $plugin['version_deactivated'] ) ) {
[2631] Fix | Delete
$explanation = sprintf(
[2632] Fix | Delete
/* translators: 1: Name of deactivated plugin, 2: Plugin version deactivated, 3: Current WP version, 4: Compatible plugin version. */
[2633] Fix | Delete
__( '%1$s %2$s was deactivated due to incompatibility with WordPress %3$s, please upgrade to %1$s %4$s or later.' ),
[2634] Fix | Delete
$plugin['plugin_name'],
[2635] Fix | Delete
$plugin['version_deactivated'],
[2636] Fix | Delete
$GLOBALS['wp_version'],
[2637] Fix | Delete
$plugin['version_compatible']
[2638] Fix | Delete
);
[2639] Fix | Delete
} else {
[2640] Fix | Delete
$explanation = sprintf(
[2641] Fix | Delete
/* translators: 1: Name of deactivated plugin, 2: Plugin version deactivated, 3: Current WP version. */
[2642] Fix | Delete
__( '%1$s %2$s was deactivated due to incompatibility with WordPress %3$s.' ),
[2643] Fix | Delete
$plugin['plugin_name'],
[2644] Fix | Delete
! empty( $plugin['version_deactivated'] ) ? $plugin['version_deactivated'] : '',
[2645] Fix | Delete
$GLOBALS['wp_version'],
[2646] Fix | Delete
$plugin['version_compatible']
[2647] Fix | Delete
);
[2648] Fix | Delete
}
[2649] Fix | Delete
[2650] Fix | Delete
$message = sprintf(
[2651] Fix | Delete
'<strong>%s</strong><br>%s</p><p><a href="%s">%s</a>',
[2652] Fix | Delete
sprintf(
[2653] Fix | Delete
/* translators: %s: Name of deactivated plugin. */
[2654] Fix | Delete
__( '%s plugin deactivated during WordPress upgrade.' ),
[2655] Fix | Delete
$plugin['plugin_name']
[2656] Fix | Delete
),
[2657] Fix | Delete
$explanation,
[2658] Fix | Delete
esc_url( admin_url( 'plugins.php?plugin_status=inactive' ) ),
[2659] Fix | Delete
__( 'Go to the Plugins screen' )
[2660] Fix | Delete
);
[2661] Fix | Delete
wp_admin_notice( $message, array( 'type' => 'warning' ) );
[2662] Fix | Delete
}
[2663] Fix | Delete
[2664] Fix | Delete
// Empty the options.
[2665] Fix | Delete
update_option( 'wp_force_deactivated_plugins', array(), false );
[2666] Fix | Delete
if ( is_multisite() ) {
[2667] Fix | Delete
update_site_option( 'wp_force_deactivated_plugins', array() );
[2668] Fix | Delete
}
[2669] Fix | Delete
}
[2670] Fix | Delete
[2671] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function