Server IP : 172.67.157.199 / Your IP : 3.15.34.225 [ Web Server : Apache System : Linux b70eb322-3aee-0c53-7c82-0db91281f2c6.secureserver.net 6.1.90-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 2 12:09:22 EDT 2024 x86_64 User : root ( 0) PHP Version : 8.0.30.2 Disable Function : NONE Domains : 0 Domains MySQL : ON | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/wp-content/plugins/ultimate-dashboard/modules/plugin-onboarding/ajax/ |
Upload File : |
<?php /** * Save modules. * * @package Ultimate_Dashboard */ namespace Udb\PluginOnboarding\Ajax; /** * Class to manage ajax request of migration to UDB. */ class Save_Modules { /** * The available modules. * * @var array */ private $available_modules = [ 'white_label', 'login_customizer', 'login_redirect', 'admin_pages', 'admin_menu_editor', 'admin_bar_editor', ]; /** * The selected modules. * * @var array */ private $modules = []; /** * Class constructor. */ public function __construct() { add_action( 'wp_ajax_udb_plugin_onboarding_save_modules', [ $this, 'handler' ] ); } /** * The request handler. */ public function handler() { $this->validate(); $this->save(); } /** * Validate the data. */ private function validate() { $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : ''; // Check if nonce is incorrect. if ( ! wp_verify_nonce( $nonce, 'udb_plugin_onboarding_save_modules_nonce' ) ) { wp_send_json_error( __( 'Invalid token', 'ultimate-dashboard' ), 401 ); } // At least login_customizer is selected :). if ( ! isset( $_POST['modules'] ) || ! is_array( $_POST['modules'] ) || empty( $_POST['modules'] ) ) { wp_send_json_error( __( 'No modules selected', 'ultimate-dashboard' ), 401 ); } foreach ( $_POST['modules'] as $index => $module ) { if ( is_string( $module ) ) { $module = sanitize_text_field( wp_unslash( $module ) ); array_push( $this->modules, $module ); } } } /** * Save the data. */ private function save() { $module_statuses = []; foreach ( $this->available_modules as $available_module ) { if ( in_array( $available_module, $this->modules, true ) ) { $module_statuses[ $available_module ] = 'true'; } else { $module_statuses[ $available_module ] = 'false'; } } update_option( 'udb_modules', $module_statuses ); wp_send_json_success( __( 'Modules saved', 'ultimate-dashboard' ) ); } }