<?php

if ( !defined( 'ABSPATH' ) ) {
    exit;
}

class glowify_OCDI_Demo_Importer {

    public function __construct() {
        add_filter( 'pt-ocdi/import_files', [$this, 'import_files_config'] );
        add_filter( 'pt-ocdi/after_import', [$this, 'ocdi_after_import_setup'] );
        add_filter( 'pt-ocdi/disable_pt_branding', '__return_true' );
        add_action( 'init', [$this, 'glowify_wp_ocdi_rewrite_flush'] );
    }

    public function import_files_config() {

		$home_prevs = array(
			'glowify_wp_demo_home1' => array(
				'title' => esc_html__( 'Homepage', 'glowify-wp' ),
				'page'  => esc_html__( 'home', 'glowify-wp' ),
				'preview_link' => 'https://glowify-wp.laralink.com',
			),
		);

        $config = [];

        $import_path = trailingslashit( get_template_directory() ) . '/inc/demo-data/';

        foreach ( $home_prevs as $key => $prev ) {

            $contents_demo = $import_path . 'glowify-demo-data.xml';
            $widget_settings = $import_path . 'glowify-widgets.wie';

            $config[] = [
                'import_file_id'               => $key,
                'import_page_name'             => $prev['page'],
                'import_file_name'             => $prev['title'],
                'local_import_file'            => $contents_demo,
                'local_import_widget_file'     => $widget_settings,
                'preview_url'                  => $prev['preview_link'],
                'import_notice'                => esc_html__('After you import this demo, you will get a demo like Our Live Website', 'glowify-wp' ),
            ];
        }

        return $config;
    }

    public function ocdi_after_import_setup( $selected_file ) {

        $this->assign_menu_to_location();
        $this->assign_frontpage_id( $selected_file );
        $this->update_permalinks();
        update_option( 'glowify_wp_ocdi_importer_flash', true );
    }

    private function assign_menu_to_location() {

        $main_menu = get_term_by( 'name', 'Primary Menu', 'nav_menu' );

        set_theme_mod( 'nav_menu_locations', [
            'menu-1' => $main_menu->term_id,
        ] );
    }

    private function assign_frontpage_id( $selected_import ) {

        $front_page = get_page_by_title( $selected_import['import_page_name'] );
        $blog_page = get_page_by_title( 'Blog' );

        update_option( 'show_on_front', 'page' );
        update_option( 'page_on_front', $front_page->ID );
        update_option( 'page_for_posts', $blog_page->ID );
    }

    private function update_permalinks() {
        update_option( 'permalink_structure', '/%postname%/' );
    }

    public function glowify_wp_ocdi_rewrite_flush() {

        if ( get_option( 'glowify_wp_ocdi_importer_flash' ) == true ) {
            flush_rewrite_rules();
            delete_option('glowify_wp_ocdi_importer_flash' );
        }
    }
}

new glowify_OCDI_Demo_Importer;