HEX
Server: Apache/2
System: Linux chaudang 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: mgawa (1021)
PHP: 7.3.33
Disabled: NONE
Upload Files
File: /home/mgawa/domains/trieuco.net/private_html/wp-content/plugins/adminimize/inc-setup/import.php
<?php
/**
 * Import settings as json file.
 *
 * @package    Adminimize
 * @subpackage import
 * @author     Frank Bültge
 * @version    2017-11-29
 */

if ( ! function_exists( 'add_action' ) ) {
	echo "Hi there!  I'm just a part of plugin, not much I can do when called directly.";
	exit;
}

add_action( 'admin_init', '_mw_adminimize_import_json' );
/**
 * Process a settings import from a json file.
 */
function _mw_adminimize_import_json() {

	if ( ! is_admin() ) {
		return;
	}

	if ( ! current_user_can( 'manage_options' ) ) {
		return;
	}

	// If is AJAX Call.
	if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
		return;
	}

	if ( empty( $_POST[ '_mw_adminimize_action' ] ) || '_mw_adminimize_import' !== $_POST[ '_mw_adminimize_action' ] ) {
		return;
	}

	if ( ! wp_verify_nonce( $_POST[ 'mw_adminimize_import_nonce' ], 'mw_adminimize_import_nonce' ) ) {
		return;
	}

	$path      = esc_attr( $_FILES[ 'import_file' ][ 'tmp_name' ] );
	$type      = (string) esc_attr( $_FILES[ 'import_file' ][ 'type' ] );
	$tmp       = explode( '/', $type );
	$extension = end( $tmp );

	// Fallback, if we have no file information on server.
	$extension_types = array( 'octet-stream' );
	if ( in_array( $extension, $extension_types, false ) ) {
		$finfo = new finfo(FILEINFO_MIME_TYPE);
		$extension = $finfo->file( $_FILES[ 'import_file' ][ 'tmp_name' ] );
	}

	$extension_allow = array( 'json', 'text/plain', 'text/html' );
	if ( false !== $extension && ! in_array( $extension, $extension_allow, false ) ) {
		var_dump('test');var_dump($extension);
		wp_die(
			sprintf(
				esc_attr__( 'Please upload a valid .json file, Extension check. Your file have the extension %s.', 'adminimize' ),
				'<code>' . $extension . '</code>'
			)
		);
	}

	if ( empty( $path ) || ! is_readable( $path ) ) {
		wp_die(
			sprintf(
				esc_attr__( 'It is not possible to find a file in %s', 'adminimize' ),
				$path
			)
		);
	}

	// Retrieve the settings from the file and convert the json object to an array.
	$settings = (array) json_decode(
		file_get_contents( $path )
	);
	unlink( $path );

	_mw_adminimize_update_option( $settings );
	wp_safe_redirect( get_option( 'siteurl' ) . '/wp-admin/options-general.php?page=adminimize-options' );
}