Create a page by importing data from an XML file ( On clicking a button inside admin options page)

So, are you looking for a JSON importer for Elementor? If so, why not use their native importer? See here:

Native Elementor Importer

However, if you would rather have an option in a menu, try this small plugin. It adds an importer under Tools > Import, called Elementor JSON Importer, that you can use to import JSON files (it technically also handles .zip files). With it, you can upload a JSON file and it generates an Elementor template from it. It saves the uploaded files in the wp-content/uploads folder.

<?php
/**
 * Elementor JSON Importer
 *
 * Plugin Name: Elementor Importer
 * Plugin URI:  https://example.com
 * Description: Imports local JSON data and creates an Elementor post.
 * Version:     0.1.0
 * Author:      Your Name Here
 * Author URI:  https://example.com
 * Text Domain: elementor-json-importer
 */

if ( ! defined( 'WP_LOAD_IMPORTERS' ) )
    return;

// Load Importer API
require_once ABSPATH . 'wp-admin/includes/import.php';

// Require Elementor API
require_once plugin_dir_path( __DIR__ ) . 'elementor/includes/template-library/sources/base.php';
require_once plugin_dir_path( __DIR__ ) . 'elementor/includes/template-library/sources/local.php';

// Make sure the importer class exists and is available.
if ( ! class_exists( 'WP_Importer' ) ) {
    $class_wp_importer = ABSPATH . 'wp-admin/includes/class-wp-importer.php';
    if ( file_exists( $class_wp_importer ) ) {
        require_once $class_wp_importer;
    }
}

/**
 * Elementor JSON Importer
 *
 * Will process JSON data for importing Elementor posts into WordPress.
 *
 * @since 0.1.0
 */
if ( class_exists( 'WP_Importer' ) ) {

    class Elementor_JSON_Importer extends WP_Importer {

        // Constructor
        public function __construct() {
            // Nothing.
        }

        // Executes on import dispatch.
        public function dispatch() {
            if ( empty( $_GET['step'] ) ) {
                $step = 0;
            } else {
                $step = (int) $_GET['step'];
            }

            $this->header();

            switch ($step) {
                case 0:
                    $this->greet();
                    break;
                case 1:
                    check_admin_referer( 'import-upload' );
                    $result = $this->import();
                    if ( is_wp_error( $result ) ) {
                        echo $result->get_error_message();
                    }
                    break;
            }

            $this->footer();
        }

        // Echoes page footer.
        protected function footer() {
            echo '</div>';
        }

        // Echoes greeting.
        protected function greet() {
            echo '<div class="narrow">';
            echo '<p>'.__( 'This importer allows you to extract posts from an Elementor JSON file into your WordPress site. Pick a JSON file to upload and click Import.', 'elementor-json-importer' ).'</p>';
            wp_import_upload_form( 'admin.php?import=elementor-json&amp;step=1' );
            echo '</div>';
        }

        // Echoes page header.
        protected function header() {
            echo '<div class="wrap">';
            screen_icon();
            echo '<h2>'.__( 'Import JSON', 'elementor-json-importer-importer' ).'</h2>';
        }

        // Performs the actual import by using methods of the Elementor API.
        protected function import() {
            $error = new WP_Error();
            $file = wp_import_handle_upload();

            if ( isset( $file['error'] ) ) {
                $error->add( 'upload-error', $file['error'] );
                return $error;
            }

            $source_local = new Elementor\TemplateLibrary\Source_Local();
            if ( ! method_exists( $source_local, 'import_template' ) ) {
                $error->add( 'elementor-api-error', __( 'Elementor API unavailable.', 'elementor-json-importer' ) );
                return $error;
            }

            try {
                $result = $source_local->import_template( basename( $file['file'] ), $file['file'] );
            } catch ( Exception $e ) {
                $error->add( 'elementor-import-error', __( 'Elementor import has failed.', 'elementor-json-importer' ) );
                return $error;
            } finally {
                wp_import_cleanup( $file['id'] );
            }

            echo '<h3>';
            printf( __( 'All done. <a href="https://wordpress.stackexchange.com/questions/351334/%s">View template</a>', 'rss-importer' ), esc_url( $result[0]['url'] ) );
            echo '</h3>';
        }
    }

    // Create a new instance of the importer class.
    $elementor_json_importer = new Elementor_JSON_Importer();

    // Attempt to register importer.
    $error = register_importer(
        'elementor-json',
        __( 'Elementor JSON Importer', 'elementor-json-importer' ),
        __( 'Import posts from an Elementor JSON file.', 'elementor-json-importer' ),
        array ( $elementor_json_importer, 'dispatch' )
    );

    if ( is_wp_error( $error ) ) {
        error_log( $error->get_error_message() );
    }   

} // class_exists( 'WP_Importer' )

function elementor_json_importer_init() {
    load_plugin_textdomain( 'elementor-json-importer', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
}
add_action( 'init', 'elementor_json_importer_init' );

It depends heavily on the Elementor plugin, though, so make sure to check if it works each time the Elementor plugin receives an update.

deneme bonusu veren sitelerbahis casinomakrobetceltabetpinbahispolobetpolobet girişpinbahis girişmakrobet girişpulibet girişmobilbahis girişkolaybet giriş