403Webshell
Server IP : 38.190.208.107  /  Your IP : 216.73.216.152
Web Server : nginx/1.28.1
System : Linux ht2026040333114 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.37-1 (2023-07-03) x86_64
User : root ( 0)
PHP Version : 8.2.28
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv,eval,assert,passthru,system,exec,shell_exec,popen,proc_open
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /www/wwwroot/wp.9/wp-content/themes/dt-the7/inc/mods/demo-content/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/wwwroot/wp.9/wp-content/themes/dt-the7/inc/mods/demo-content//class-the7-demo-remover.php
<?php
/**
 * @package The7
 */

defined( 'ABSPATH' ) || exit;

class The7_Demo_Remover {

	private $demo_type;

	/**
	 * @var The7_Demo_Content_Tracker
	 */
	private $content_tracker;

	public function __construct( $content_tracker ) {
		$this->content_tracker = $content_tracker;
		$this->demo_type       = $content_tracker->get_demo_type();
	}

	public function remove_content() {
		$this->remove_posts();
		$this->remove_terms();
		$this->revert_wp_global_styles();
	}

	public function revert_site_settings() {
		$this->revert_dashboard_settings();
		$this->revert_wp_settings();
		$this->revert_menus();
		$this->revert_widgets();
		$this->revert_post_type_builder_data();
	}

	public function remove_theme_options() {
		$this->revert_the7_options();
		$this->remove_ultimate_google_fonts();
		$this->revert_elementor_options();
		$this->revert_site_identity();
	}

	public function remove_rev_sliders() {
		if ( ! class_exists( 'RevSliderSlider' ) ) {
			return;
		}

		$history_sliders = $this->content_tracker->get( 'rev_sliders' );

		if ( empty( $history_sliders ) ) {
			return;
		}

		$slider = new RevSliderSlider();
		foreach ( $history_sliders as $k => $slider_id ) {
			$slider->initByID( $slider_id );
			$slider->deleteSlider();

			unset( $history_sliders[ $k ] );
		}
		$this->content_tracker->remove( 'rev_sliders' );
	}

	/**
	 * Revert WP Global Styles.
	 *
	 * @return void
	 */
	protected function revert_wp_global_styles() {
		$latest_globl_styles = $this->content_tracker->get( 'wp_global_styles' );
		if ( ! $latest_globl_styles ) {
			return;
		}

		$existing_post_id = \WP_Theme_JSON_Resolver::get_user_global_styles_post_id();
		if ( ! $existing_post_id ) {
			return;
		}

		wp_update_post(
			[
				'ID'           => $existing_post_id,
				'post_content' => $latest_globl_styles,
			]
		);
	}

	protected function remove_posts() {
		global $wpdb;

		$demo     = $this->demo_type;
		$post_ids = $wpdb->get_col( "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key='_the7_imported_item' AND meta_value='{$demo}'" );
		// Force remove Elementor Kit if eny was imported accidetally.
		$_GET['force_delete_kit'] = true;

		foreach ( $post_ids as $post_id ) {
			wp_delete_post( $post_id, true );
		}
	}

	protected function remove_terms() {
		global $wpdb;

		$demo     = $this->demo_type;
		$term_ids = $wpdb->get_col( "SELECT term_id FROM {$wpdb->termmeta} WHERE meta_key='_the7_imported_item' AND meta_value='{$demo}'" );

		foreach ( $term_ids as $term_id ) {
			$term = get_term( $term_id );
			if ( $term && ! is_wp_error( $term ) ) {
				wp_delete_term( $term_id, $term->taxonomy );
			}
		}
	}

	protected function revert_dashboard_settings() {
		$settings = $this->content_tracker->get( 'the7_dashboard_settings' );
		if ( ! $settings ) {
			return;
		}

		foreach ( $settings as $name => $value ) {
			The7_Admin_Dashboard_Settings::set( $name, $value );
		}

		$this->content_tracker->remove( 'the7_dashboard_settings' );
	}

	protected function revert_wp_settings() {
		$wp_settings = $this->content_tracker->get( 'wp_settings' );
		if ( ! $wp_settings ) {
			return;
		}

		foreach ( $wp_settings as $key => $value ) {
			update_option( $key, $value );
		}

		$this->content_tracker->remove( 'wp_settings' );
	}

	protected function revert_menus() {
		$menu_locations = $this->content_tracker->get( 'menu_locations' );
		if ( ! $menu_locations ) {
			return;
		}

		$locations = get_theme_mod( 'nav_menu_locations' );

		foreach ( $menu_locations as $location => $menu_id ) {
			$locations[ $location ] = $menu_id;
		}

		set_theme_mod( 'nav_menu_locations', $locations );

		$this->content_tracker->remove( 'menu_locations' );
	}

	protected function revert_widgets() {
		$widgets_settings = $this->content_tracker->get( 'widgets_settings' );
		if ( ! $widgets_settings ) {
			return;
		}

		foreach ( $widgets_settings as $setting => $value ) {
			update_option( $setting, $value );
		}

		$this->content_tracker->remove( 'widgets_settings' );
	}

	protected function revert_the7_options() {
		$theme_options = $this->content_tracker->get( 'theme_options' );
		if ( ! $theme_options ) {
			return;
		}

		foreach ( $theme_options as $options_key => $options ) {
			update_option( $options_key, maybe_unserialize( $options ) );
		}

		presscore_refresh_dynamic_css();

		$this->content_tracker->remove( 'theme_options' );
	}

	protected function remove_ultimate_google_fonts() {
		$imported_font_families = $this->content_tracker->get( 'ultimate_imported_google_font_families' );
		if ( ! $imported_font_families ) {
			return;
		}

		$current_fonts = get_option( 'ultimate_selected_google_fonts', [] );
		foreach ( $current_fonts as $i => $font ) {
			if ( in_array( $font['font_family'], $imported_font_families, true ) ) {
				unset( $current_fonts[ $i ] );
			}
		}
		update_option( 'ultimate_selected_google_fonts', $current_fonts );

		$this->content_tracker->remove( 'ultimate_imported_google_font_families' );
	}

	protected function revert_elementor_options() {
		$origin_elementor_options = $this->content_tracker->get( 'origin_elementor_options' );

		if ( ! $origin_elementor_options ) {
			return;
		}

		foreach ( $origin_elementor_options as $option => $value ) {
			if ( $value === null ) {
				delete_option( $option );
			} else {
				update_option( $option, $value );
			}
		}

		$this->content_tracker->remove( 'origin_elementor_options' );
	}

	/**
	 * @return void
	 */
	protected function revert_site_identity() {
		$custom_logo = $this->content_tracker->get( 'custom_logo' );
		if ( $custom_logo ) {
			set_theme_mod( 'custom_logo', $custom_logo );
		}

		$site_icon = $this->content_tracker->get( 'site_icon' );
		if ( $site_icon ) {
			update_option( 'site_icon', $site_icon );
		}

		$this->content_tracker->remove( 'custom_logo' );
		$this->content_tracker->remove( 'site_icon' );
	}

	/**
	 * @return void
	 */
	protected function revert_post_type_builder_data() {
		$data_to_restore = [
			The7_Post_Types_Builder_Data_Importer::DATA_POST_TYPES_KEY => $this->content_tracker->get(
				The7_Post_Types_Builder_Data_Importer::TRACKER_POST_TYPES_KEY
			),
			The7_Post_Types_Builder_Data_Importer::DATA_TAXONOMIES_KEY => $this->content_tracker->get(
				The7_Post_Types_Builder_Data_Importer::TRACKER_TAXONOMIES_KEY
			),
		];

		$importer = new The7_Post_Types_Builder_Data_Importer( new The7_Demo_Null_Tracker( $this->demo_type ) );
		$importer->import( $data_to_restore );

		$this->content_tracker->remove( The7_Post_Types_Builder_Data_Importer::TRACKER_POST_TYPES_KEY );
		$this->content_tracker->remove( The7_Post_Types_Builder_Data_Importer::TRACKER_TAXONOMIES_KEY );
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit