| 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 : |
<?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 );
}
}