| Server IP : 121.121.20.254 / Your IP : 216.73.216.146 Web Server : Microsoft-IIS/10.0 System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64 User : IUSR ( 0) PHP Version : 8.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/inetpub/wwwroot/excellentvege/wp-content/plugins/wp-coder/classes/Admin/ |
Upload File : |
<?php
namespace WPCoder\Admin;
defined( 'ABSPATH' ) || exit;
use WPCoder\Dashboard\DBManager;
use WPCoder\Dashboard\ImporterExporter;
use WPCoder\Dashboard\Settings;
use WPCoder\WPCoder;
class AdminActions {
public function __construct() {
add_action( 'admin_init', [ $this, 'actions' ] );
}
public function actions() {
$name = $this->check_name( $_REQUEST );
if ( ! $name ) {
return false;
}
$verify = $this->verify( $name );
if ( ! $verify ) {
return false;
}
if ( strpos( $name, '_export_data' ) !== false ) {
ImporterExporter::export_data();
} elseif ( strpos( $name, '_export_item' ) !== false ) {
ImporterExporter::export_item();
} elseif ( strpos( $name, '_import_data' ) !== false ) {
ImporterExporter::import_data();
} elseif ( strpos( $name, '_remove_item' ) !== false ) {
DBManager::remove_item();
} elseif ( strpos( $name, '_settings' ) !== false ) {
Settings::save_item();
} elseif ( strpos( $name, '_activate_item' ) !== false ) {
Settings::activate_item();
} elseif ( strpos( $name, '_deactivate_item' ) !== false ) {
Settings::deactivate_item();
} elseif ( strpos( $name, '_activate_mode' ) !== false ) {
Settings::activate_mode();
} elseif ( strpos( $name, '_deactivate_mode' ) !== false ) {
Settings::deactivate_mode();
}
}
private function verify( $name ): bool {
$nonce_action = WPCoder::PREFIX . '_nonce';
return ! ( ! isset( $_REQUEST[ $name ] ) || ! wp_verify_nonce( $_REQUEST[ $name ], $nonce_action ) || ! current_user_can( 'unfiltered_html' ) );
}
private function check_name( $request ) {
$names = [
WPCoder::PREFIX . '_import_data',
WPCoder::PREFIX . '_export_data',
WPCoder::PREFIX . '_export_item',
WPCoder::PREFIX . '_remove_item',
WPCoder::PREFIX . '_settings',
WPCoder::PREFIX . '_activate_item',
WPCoder::PREFIX . '_deactivate_item',
WPCoder::PREFIX . '_activate_mode',
WPCoder::PREFIX . '_deactivate_mode',
];
foreach ( $request as $key => $value ) {
if ( in_array( $key, $names, true ) ) {
return $key;
}
}
return false;
}
}