Commit realizado el 12:13:52 08-04-2024
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
<?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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user