You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
3.0 KiB
PHP
120 lines
3.0 KiB
PHP
<?php
|
|
namespace DeployerForGit\Subpages\MiscellaneousPage;
|
|
|
|
use DeployerForGit\DataManager;
|
|
use DeployerForGit\Helper;
|
|
|
|
/**
|
|
* Miscellaneous page
|
|
*/
|
|
class Miscellaneous {
|
|
|
|
/**
|
|
* Constructor
|
|
*/
|
|
public function __construct() {
|
|
add_action( is_multisite() ? 'network_admin_menu' : 'admin_menu', array( $this, 'init_menu' ) );
|
|
}
|
|
|
|
/**
|
|
* Initialize menu
|
|
*
|
|
* @return void
|
|
*/
|
|
public function init_menu() {
|
|
$menu_slug = Helper::menu_slug();
|
|
$capability = is_multisite() ? 'manage_network_options' : 'manage_options';
|
|
|
|
add_submenu_page(
|
|
$menu_slug,
|
|
esc_attr__( 'Miscellaneous', 'deployer-for-git' ),
|
|
esc_attr__( 'Miscellaneous', 'deployer-for-git' ),
|
|
$capability,
|
|
"{$menu_slug}-miscellaneous",
|
|
array( $this, 'init_page' )
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Initialize page
|
|
*
|
|
* @return void
|
|
*/
|
|
public function init_page() {
|
|
$regenerate_secret_key_result = $this->handle_regenerate_secret_key_form();
|
|
$flush_cache_result = $this->handle_flush_cache_form();
|
|
$alert_notification_result = $this->handle_alert_notification_form();
|
|
$data_manager = new DataManager();
|
|
|
|
include_once __DIR__ . '/template.php';
|
|
}
|
|
|
|
/**
|
|
* Handle regenerate secret key form
|
|
*
|
|
* @return boolean|null
|
|
*/
|
|
public function handle_regenerate_secret_key_form() {
|
|
$result = null;
|
|
|
|
if ( isset( $_POST['action'] ) && $_POST['action'] === 'regenerate_secret_key' ) {
|
|
$result = false;
|
|
|
|
if ( isset( $_POST[ DFG_SLUG . '_nonce' ] ) || wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST[ DFG_SLUG . '_nonce' ] ) ), DFG_SLUG . '_regenerate_secret_key' ) ) {
|
|
$result = true;
|
|
Helper::generate_api_secret();
|
|
|
|
do_action( 'dfg_after_secret_key_regenerate' );
|
|
}
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* Handle flush cache form
|
|
*
|
|
* @return boolean|null
|
|
*/
|
|
public function handle_flush_cache_form() {
|
|
$result = null;
|
|
|
|
if ( isset( $_POST['action'] ) && $_POST['action'] === 'flush_cache' ) {
|
|
$result = false;
|
|
|
|
if ( isset( $_POST[ DFG_SLUG . '_nonce' ] ) || wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST[ DFG_SLUG . '_nonce' ] ) ), DFG_SLUG . '_flush_cache' ) ) {
|
|
$data_manager = new DataManager();
|
|
|
|
$result = $data_manager->update_flush_cache_setting( isset( $_POST['flush_cache_setting'] ) );
|
|
|
|
do_action( 'dfg_after_flush_cache_setting_update' );
|
|
}
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* Handle alert notification form
|
|
*
|
|
* @return boolean|null
|
|
*/
|
|
public function handle_alert_notification_form() {
|
|
$result = null;
|
|
|
|
if ( isset( $_POST['action'] ) && $_POST['action'] === 'alert_notification' ) {
|
|
$result = false;
|
|
|
|
if ( isset( $_POST[ DFG_SLUG . '_nonce' ] ) || wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST[ DFG_SLUG . '_nonce' ] ) ), DFG_SLUG . '_alert_notification' ) ) {
|
|
$data_manager = new DataManager();
|
|
|
|
$result = $data_manager->update_alert_notification_setting( isset( $_POST['alert_notification_setting'] ) );
|
|
|
|
do_action( 'dfg_after_alert_notification_setting_update' );
|
|
}
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
}
|