You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
1.7 KiB
84 lines
1.7 KiB
<?php
|
|
defined('ABSPATH') or die();
|
|
|
|
/**
|
|
* Usage
|
|
* php wp rsssl activate_ssl
|
|
* php wp rsssl deactivate_ssl
|
|
* php wp rsssl update_option --site_has_ssl=true
|
|
* php wp rsssl update_option --site_has_ssl=true --x_xss_protection=one
|
|
* or: php wp-cli.phar rsssl update_option --x_xss_protection=one
|
|
*/
|
|
class rsssl_wp_cli
|
|
{
|
|
public function __construct()
|
|
{
|
|
|
|
}
|
|
|
|
public function wp_cli_active() {
|
|
return defined( 'WP_CLI' ) && WP_CLI;
|
|
}
|
|
|
|
/**
|
|
* Activate SSL through CLI
|
|
*
|
|
* @return void
|
|
* @throws \WP_CLI\ExitException
|
|
*/
|
|
public function activate_ssl()
|
|
{
|
|
if ( !$this->wp_cli_active() ) {
|
|
return;
|
|
}
|
|
|
|
update_option("rsssl_onboarding_dismissed", true, false);
|
|
update_option('rsssl_6_upgrade_completed', true, false);
|
|
$success = RSSSL()->admin->activate_ssl(false);
|
|
if ($success) {
|
|
WP_CLI::success( 'SSL activated successfully' );
|
|
} else {
|
|
WP_CLI::error( 'SSL activation failed' );
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Deactivate SSL through wp cli
|
|
*
|
|
* @return void
|
|
*/
|
|
public function deactivate_ssl()
|
|
{
|
|
if (!$this->wp_cli_active() ) {
|
|
return;
|
|
}
|
|
RSSSL()->admin->deactivate();
|
|
WP_CLI::success( 'SSL deactivated' );
|
|
}
|
|
|
|
/**
|
|
* @param $name
|
|
* @param $value
|
|
*
|
|
* @return void
|
|
* @throws \WP_CLI\ExitException
|
|
*/
|
|
public function update_option($args, $assoc_args)
|
|
{
|
|
if (!$this->wp_cli_active() ) {
|
|
return;
|
|
}
|
|
|
|
if ( empty($assoc_args) ) {
|
|
WP_CLI::error( 'No options passed' );
|
|
}
|
|
|
|
foreach ($assoc_args as $name => $value ) {
|
|
rsssl_update_option(sanitize_title($name), $value);
|
|
WP_CLI::success( "Option $name updated" );
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
WP_CLI::add_command( 'rsssl', 'rsssl_wp_cli' );
|
|
|