HEX
Server: Apache
System: Linux vps.rockyroadprinting.net 4.18.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
User: rockyroadprintin (1011)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/rockyroadprintin/www/wp-content/themes/consulting/admin/templates/install_demo.php
<?php

// Do not allow directly accessing this file.
if (!defined('ABSPATH')) {
	exit('Direct script access denied.');
}

$theme              = STM_Theme_Info::get_theme_info();
$auth_code          = STM_Theme_Activation::check_token();
$plugins            = apply_filters( 'stm_theme_plugins', [] );
$demos              = apply_filters( 'stm_theme_demos', [] );
$current_demo       = apply_filters( 'stm_theme_demo_layout', '' );
$current_builder    = ( ! empty( $_GET['builder'] ) ) ? sanitize_text_field( $_GET['builder'] ) : '';
$elementor_addon    = apply_filters('stm_theme_elementor_addon', '');

?>
<div class="wrap stm-admin-wrap  stm-admin-demos-screen">
	<?php STM_Theme_Admin_Pages::get_admin_tabs('demos'); ?>

	<?php if ( ! empty( $auth_code ) || ( STM_Theme_Info::is_dev_mode() ) ) : ?>

		<!-- Top Panel of Demos -->
		<div class="top-panel">
			<div class="float_left">
				<h4>Choose Builder</h4>
				<label class="builder <?php if ( $current_builder == 'js_composer' ) echo 'checked'; ?>">
					<input type="radio" name="builder" value="js_composer" <?php if ( $current_builder == 'js_composer' ) echo 'checked'; ?>>
					WP Bakery
				</label>
				<?php if ( apply_filters( 'stm_theme_enable_elementor', false ) ) : ?>
					<label class="builder <?php if ( $current_builder == 'elementor' ) echo 'checked'; ?>">
						<input type="radio" name="builder" value="elementor" <?php if ( $current_builder == 'elementor' ) echo 'checked'; ?>>
						Elementor
					</label>
				<?php endif; ?>

                <div class="builder-check">
                    <i class="arrow-top"></i>
                    <span>Please choose Page Builder first</span>
                </div>

				<label class="privacy-label">
					<input type="checkbox" id="send_api" name="send_api" value="1" checked> I have read and accept
					<a href="#" class="show_policy">StylemixThemes Policy</a>

                    <div class="privacy-unchecked">
                        <img src="<?php echo esc_url(get_template_directory_uri() . '/admin/assets/img/arch-arrow.svg'); ?>" alt="arch-arrow">
                        <p>For the import, please read and accept StylemixThemes Policy</p>
                    </div>
				</label>
			</div>
			<div class="float_right">
				<h4>Search demo</h4>
				<input type="text" id="search_demo" placeholder="Enter demo name... ">
			</div>
			<div class="clearfix"></div>
		</div>

		<!-- Demo List -->
		<div class="stm_demo_import_choices">
            <div class="privacy-unchecked-overlay"></div>
			<div class="no_demos">
				<img src="<?php echo esc_url(get_template_directory_uri() . '/admin/assets/img/no-demos.svg'); ?>" alt="no-demos">
				<p>No available Demos</p>
			</div>

			<script type="text/javascript">
                var stm_layouts = {};
			</script>
			<?php foreach ( $demos as $demo_key => $demo_value ) : ?>
				<script type="text/javascript">
                    stm_layouts['<?php echo esc_attr($demo_key); ?>'] = <?php echo json_encode( apply_filters( 'stm_theme_layout_plugins', $demo_key ) ); ?>;
				</script>
				<label>
					<div class="inner">
						<img src="<?php echo esc_url(get_template_directory_uri() . '/assets/admin/images/layouts/' . $demo_key . '.jpg'); ?>"/>
						<?php if ( $demo_key == $current_demo ) : ?>
							<div class="installed">Imported</div>
						<?php endif; ?>

						<div class="install" data-name="<?php echo esc_attr( $demo_value['label'] ); ?>" data-layout="<?php echo esc_attr( $demo_key ); ?>"
						     data-slug="<?php echo esc_attr( $demo_value['slug'] ); ?>">Import Demo</div>
						<a href="<?php echo esc_attr( STM_DEMO_SITE_URL . $demo_value['live_url'] ); ?>" class="preview_demo" target="_blank">Preview Demo</a>
						<span class="stm_layout__label"><?php echo esc_attr( $demo_value['label'] ); ?></span>
					</div>
				</label>
			<?php endforeach; ?>
		</div>

		<!-- Demo popup -->
		<div class="stm_install__demo_popup">
			<div class="stm_install__demo_popup_close"></div>
			<div class="inner">
				<div class="stm_install__demo_popup_close"></div>
				<div class="stm_install__demo_reset_notice" style="display: none;"></div>

				<!-- Privacy Policy -->
				<div class="privacy_policy" style="display: none;">
					<div class="popup_header">
						<div class="float_left">
							<div class="theme_info">
								<label>Privacy Policy</label>
							</div>
						</div>
						<div class="clearfix"></div>
					</div>
					<div class="popup_body">
						<?php require_once __DIR__ . '/privacy_policy.php'; ?>
					</div>
				</div>

				<!-- Demo Install -->
				<div class="demo_install">
					<div class="popup_header">
						<div class="float_left">
							<img src="<?php echo esc_url(get_template_directory_uri() . '/assets/admin/images/theme-icon.svg'); ?>" alt="theme">
							<div class="theme_info">
								<span><?php echo apply_filters( 'stm_theme_esc_variable', $theme['name'] ); ?></span>
								<label>Demo installation</label>
							</div>
						</div>
						<div class="float_right">
							<div class="demo_info">
								<span>Demo</span>
								<label class="layout_name"></label>
							</div>
							<div class="demo_info">
								<span>Builder</span>
								<label class="builder_name"></label>
							</div>
						</div>
						<div class="clearfix"></div>
					</div>

					<div class="popup_body show_demo" <?php if ( !empty($current_demo) ) : ?>style="display: none;"<?php endif; ?>>
						<?php $secondary_required_plugins = STM_Theme_Plugins::secondary_required_plugins();
						$installing_plugins = array_keys($plugins);
						if ( isset( $_GET['installing_plugins'] ) ) {
							$installing_plugins = explode(',', $_GET['installing_plugins']);
						}

						$importing_data = [
							'theme_options',
							'content',
							'media',
							'sliders',
							'widgets',
						];
						if ( isset( $_GET['importing_data'] ) ) {
							$importing_data = explode(',', $_GET['importing_data']);
						} ?>

						<div class="float_left demo_plugins">
							<h4>Used Plugins</h4>

							<?php foreach ( $plugins as $plugin ) :
								$active = (STM_Theme_Plugins::plugin_is_active($plugin['slug'])) ? 'installed' : 'not-installed';
								$active_text = ($active == 'installed') ? 'installed and activated' : 'not installed';
								?>
								<div id="<?php echo sanitize_text_field('stm_' . $plugin['slug']); ?>"
								     class="stm_plugin_info <?php echo esc_attr($active); ?>"
								     data-active="<?php echo esc_attr($active); ?>"
								     data-slug="<?php echo sanitize_text_field($plugin['slug']); ?>"
								     data-required="<?php if ( $plugin['required'] || in_array($plugin['slug'], $secondary_required_plugins) ) echo 'required'; ?>">
									<label>
										<input type="checkbox" name="install_plugins[]" value="<?php echo sanitize_text_field($plugin['slug']); ?>"
											<?php if ( $active == 'installed' || in_array($plugin['slug'], $installing_plugins) ) echo 'checked'; ?>
											<?php if ( $active == 'installed' || $plugin['required'] || in_array($plugin['slug'], $secondary_required_plugins) ) echo 'disabled'; ?>>
										<div class="title_box">
											<div class="label"><?php echo sanitize_text_field($plugin['name']); ?></div>
											<span class="status"><?php echo sanitize_text_field($active_text); ?></span>
										</div>
									</label>
								</div>
							<?php endforeach; ?>

						</div>

						<div class="float_right demo_content">
							<h4>Demo Content</h4>

							<div id="import_data_theme_options" class="stm_content_info" data-status="not-imported">
								<label>
									<input type="checkbox" name="import_data[]" value="theme_options" <?php if ( in_array('theme_options', $importing_data) ) echo 'checked'; ?>>
									<div class="title_box">
										<div class="label">Theme Options
											<div class="content_tooltip">
												<span class="content_info"></span>
												<span class="content_tooltip_text">Import Theme Options / Rewrite All Current Settings</span>
											</div>
										</div>
										<span class="status">not imported</span>
									</div>
								</label>
							</div>

							<div id="import_data_content" class="stm_content_info" data-status="not-imported">
								<label>
									<input type="checkbox" name="import_data[]" value="content" <?php if ( in_array('content', $importing_data) ) echo 'checked'; ?>>
									<div class="title_box">
										<div class="label">Main Content
											<div class="content_tooltip">
												<span class="content_info"></span>
												<span class="content_tooltip_text">Import Posts, Pages, Custom Posts, and Custom Fields</span>
											</div>
										</div>
										<span class="status">not imported</span>
									</div>
								</label>
							</div>

							<div id="import_data_sliders" class="stm_content_info" data-status="not-imported">
								<label>
									<input type="checkbox" name="import_data[]" value="sliders" <?php if ( in_array('sliders', $importing_data) ) echo 'checked'; ?>>
									<div class="title_box">
										<div class="label">Import Sliders
											<div class="content_tooltip">
												<span class="content_info"></span>
												<span class="content_tooltip_text">Import Sliders of Chosen Demo Site</span>
											</div>
										</div>
										<span class="status">not imported</span>
									</div>
								</label>
							</div>

							<div id="import_data_widgets" class="stm_content_info" data-status="not-imported">
								<label>
									<input type="checkbox" name="import_data[]" value="widgets" <?php if ( in_array('widgets', $importing_data) ) echo 'checked'; ?>>
									<div class="title_box">
										<div class="label">Widgets & Menu
											<div class="content_tooltip">
												<span class="content_info"></span>
												<span class="content_tooltip_text">Import Widgets and Menu, Setup Home & Archive Pages</span>
											</div>
										</div>
										<span class="status">not imported</span>
									</div>
								</label>
							</div>
						</div>

						<div class="clearfix"></div>
					</div>
					<?php if ( !empty($current_demo) ) : ?>
						<div class="popup_body reset_demo_body show_reset_demo">
							<p>Before installing a new pre-built website, it is recommended to clean up your WordPress database</p>
							<div class="reset_demo_content">
								<img src="<?php echo esc_url(get_template_directory_uri() . "/assets/admin/images/layouts/{$current_demo}.jpg"); ?>" class="demo_image" alt="reset_demo">
								<div class="reset_demo_info">
									<img src="<?php echo esc_url(get_template_directory_uri() . '/admin/assets/img/warning.svg'); ?>" alt="warning">
									<h5>This tool Does not create backups</h5>
									<fieldset class="danger">
										<legend>Deletes</legend>
										<p>All Pages, Posts, Custom Posts, Menus, Categories, Comments, etc. Deactivate bundled Plugins!</p>
									</fieldset>
									<fieldset class="success">
										<legend>Remains</legend>
										<p>Users and passwords, wp_options, files on your server.</p>
									</fieldset>
								</div>
							</div>
						</div>
					<?php endif; ?>

					<div class="popup_footer show_demo" <?php if ( !empty($current_demo) ) : ?>style="display: none;"<?php endif; ?>>
						<div class="demo_progress">
							<div class="demo_progress_info">
								<div class="demo_status">Import Progress</div>
								<div><span class="demo_percent">0</span>%</div>
							</div>
							<div class="demo_progress_bar">
								<div role="progressbar" class="progress_bar" style="width: 0%;"></div>
							</div>
							<div class="demo_error" style="display: none;">Please check your website after few minutes or Run Demo Import once again!</div>
						</div>
						<div class="stm_install__demo_start demo_button">Start Import</div>
					</div>
					<?php if ( !empty($current_demo) ) : ?>
						<div class="popup_footer show_reset_demo">
							<label>
								<input type="checkbox" id="reset_policy">
								I understand that there is NO UNDO
							</label>
							<div class="demo_buttons">
								<div id="reset_demo" class="demo_button danger disabled">Reset Now</div>
								<div id="skip_reset" class="demo_button primary">Skip</div>
							</div>
						</div>
					<?php endif; ?>

				</div>

			</div>
		</div>

	<?php else: ?>
		<div class="stm-admin-message">You need to activate your theme license to choose layout and import demo content</div>
	<?php endif; ?>

</div>

<script>
    var dev_mode            = <?php echo STM_Theme_Info::is_dev_mode() ? 'true' : 'false'; ?>;
    var site_url            = '<?php echo esc_url( get_site_url() ); ?>';
    var theme_slug          = '<?php echo esc_js( $theme['slug'] ); ?>';
    var import_nonce        = '<?php echo esc_js( wp_create_nonce('stm_demo_import_content') ); ?>';
    var reset_nonce         = '<?php echo esc_js( wp_create_nonce('stm_reset_demo') ); ?>';
    var elementor_addon     = '<?php echo apply_filters( 'stm_theme_esc_variable', $elementor_addon ); ?>';
    var plugins             = <?php echo html_entity_decode( json_encode( wp_list_pluck($plugins, 'slug') ) ); ?>;
    var default_layout      = '<?php echo apply_filters( 'stm_theme_default_layout', '' ); ?>';
    var default_layout_name = '<?php echo apply_filters( 'stm_theme_default_layout_name', '' ); ?>';

    <?php $importing_layout = $_GET['layout_importing'] ?? false; ?>
    <?php if ( ! empty( $importing_layout ) ) : ?>
    var importing_layout = '<?php echo esc_js( $importing_layout ); ?>';

        <?php if ( ! empty( $demos[ $importing_layout ] ) ) : ?>
        var importing_layout_name = '<?php echo esc_js( $demos[ $importing_layout ]['slug']); ?>';
        <?php endif;  ?>

        <?php if ( ! empty( $_GET['builder'] ) ) : ?>
        var importing_builder = '<?php echo esc_js( sanitize_text_field( $_GET['builder'] ) ); ?>';
        <?php endif; ?>

        <?php if ( ! empty( $_GET['installing_plugins'] ) ) : ?>
        var importing_install_plugins = '<?php echo esc_js( sanitize_text_field( $_GET['installing_plugins'] ) ) ?>'.split(',');
        <?php endif; ?>

    <?php endif; ?>

    jQuery(document).ready(function () {
        next_installable();
        show_popup();

        <?php if( ! empty( $importing_layout ) ) : ?>
        skip_reset();

        jQuery('.stm_demo_import_choices .install').click();

        setTimeout(function () {
            jQuery('.stm_install__demo_popup .inner .stm_install__demo_start').click();
        }, 1000);

        set_builder();
        hide_plugins(layout);

        window.history.pushState('', '', '<?php echo esc_url( remove_query_arg(['layout_importing', 'builder', 'importing_data', 'installing_plugins']) ) ?>');
        <?php endif; ?>
    });
</script>
<?php

wp_enqueue_script('stm-theme-demo-import', get_template_directory_uri() . '/admin/assets/js/demo-import.js', 'jQuery', NULL, true);