File: /home/thwoodlg/public_html/wp-content/plugins/really-simple-ssl/force-deactivate.txt
<?php
/*
* Deactivation page to simple deactivate the plugin when backend is not accessible anymore
* To deactivate:
* 1) rename this file to force-deactivate.php
* 2) Go in your browser to www.yourdomain.com/wp-content/plugins/really-simple-ssl/force-deactivate.php.
* 3) IMPORTANT!!!! Rename this file back to .txt
*/
?>
<html>
<body>
<?php
# No need for the template engine
define( 'WP_USE_THEMES', false );
#find the base path
define( 'BASE_PATH', find_wordpress_base_path() . "/" );
//make sure the files are loaded
if (!defined('RSSSL_DOING_SYSTEM_STATUS')) define( 'RSSSL_DOING_SYSTEM_STATUS' , true);
# Load WordPress Core
require_once( BASE_PATH . 'wp-load.php' );
require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
$core_plugin = 'really-simple-ssl/rlrsssl-really-simple-ssl.php';
if ( ! is_plugin_active( $core_plugin ) ) {
echo "<h1>Really Simple SSL is already deactivated!</h1>";
exit;
}
$step = 1;
echo "<h1>Force deactivation of Really Simple SSL</h1>";
echo $step . ". Resetting options" . "<br>";
$networkwide = is_multisite();
RSSSL()->really_simple_ssl->deactivate( $networkwide );
$step ++;
//add feedback on writable files.
if ( count( RSSSL()->really_simple_ssl->errors ) > 0 ) {
echo $step . ". Errors occured while deactivating:<ul>";
$step ++;
foreach ( RSSSL()->really_simple_ssl->errors as $errorname => $error ) {
echo "<li>" . $errorname . "</li>";
}
echo "</ul>";
echo "Errors while removing the Really Simple SSL lines from your wp-config.php and .htaccess files, which you can normally find in your webroot."
. "<br><br>";
}
echo $step . ". Deactivating plugin" . "<br>";
rl_deactivate_plugin( RSSSL()->really_simple_ssl->plugin_dir . "/"
. RSSSL()->really_simple_ssl->plugin_filename );
$step ++;
echo $step . ". Completed with <b>"
. count( RSSSL()->really_simple_ssl->errors ) . "</b> error(s)" . "<br>";
function rl_remove_plugin_from_array( $plugin, $current ) {
$key = array_search( $plugin, $current );
if ( false !== $key ) {
$do_blog = true;
unset( $current[ $key ] );
}
return $current;
}
function rl_deactivate_plugin( $plugin ) {
$plugin = plugin_basename( trim( $plugin ) );
if ( is_multisite() ) {
$network_current = get_site_option( 'active_sitewide_plugins', array() );
if ( is_plugin_active_for_network( $plugin ) ) {
unset( $network_current[ $plugin ] );
}
update_site_option( 'active_sitewide_plugins', $network_current );
//remove plugin one by one on each site
$args = array(
'public' => 1,
);
$sites = get_sites($args);
foreach ( $sites as $site ) {
switch_to_blog($site->blog_id);
$current = get_option( 'active_plugins', array() );
$current = rl_remove_plugin_from_array( $plugin, $current );
update_option( 'active_plugins', $current );
restore_current_blog(); //switches back to previous blog, not current, so we have to do it each loop
}
} else {
$current = get_option( 'active_plugins', array() );
$current = rl_remove_plugin_from_array( $plugin, $current );
update_option( 'active_plugins', $current );
}
update_option( 'active_plugins', $current );
}
/**
* Helper function to find Wordpress base path.
*/
function find_wordpress_base_path() {
$dir = dirname( __FILE__ );
do {
if ( file_exists( $dir . "/wp-load.php" ) ) {
return $dir;
}
if ( file_exists( $dir . "/wp" ) ) {
return $dir . "/wp";
}
} while ( $dir = realpath( "$dir/.." ) );
return null;
}
?>
</body>
</html>