<?php

/**
* Get started notice
*/

//  Plugin Activation Start
if (!function_exists('novel_collections_is_plugin_installed')) {
    function novel_collections_is_plugin_installed($plugin_slug)
    {
        $plugin_path = WP_PLUGIN_DIR . '/' . $plugin_slug;
        return file_exists($plugin_path);
    }
}
if (!function_exists('novel_collections_is_plugin_activated')) {
    function novel_collections_is_plugin_activated($plugin_slug)
    {
        return is_plugin_active($plugin_slug);
    }
}

// Hook into a custom action when the button is clicked
add_action('wp_ajax_novel_collections_install_and_activate_plugins', 'novel_collections_install_and_activate_plugins');
add_action('wp_ajax_nopriv_novel_collections_install_and_activate_plugins', 'novel_collections_install_and_activate_plugins');
add_action('wp_ajax_novel_collections_rplugin_activation', 'novel_collections_rplugin_activation');
add_action('wp_ajax_nopriv_novel_collections_rplugin_activation', 'novel_collections_rplugin_activation');

// Function to install and activate the plugins



function check_plugin_installed_status($pugin_slug, $plugin_file)
{
    return file_exists(ABSPATH . 'wp-content/plugins/' . $pugin_slug . '/' . $plugin_file) ? true : false;
}

/* Check if plugin is activated */


function check_plugin_active_status($pugin_slug, $plugin_file)
{
    return is_plugin_active($pugin_slug . '/' . $plugin_file) ? true : false;
}

require_once(ABSPATH . 'wp-admin/includes/plugin-install.php');
require_once(ABSPATH . 'wp-admin/includes/file.php');
require_once(ABSPATH . 'wp-admin/includes/misc.php');
require_once(ABSPATH . 'wp-admin/includes/class-wp-upgrader.php');
// Helper function to check if all recommended plugins are installed and activated
function novel_collections_all_plugins_active() {
    $recommended_plugins = array(
        array(
            'name' => __( 'CBX Bookmark & Favorite', 'novel-collections' ),
            'slug' => 'cbxwpbookmark',
            'file' => 'cbxwpbookmark.php'
        ),
    );

    foreach ($recommended_plugins as $plugin) {
        $plugin_slug = $plugin['slug'];
        $plugin_file = $plugin['file'];

        // Check if the plugin is active
        if (!is_plugin_active($plugin_slug . '/' . $plugin_file)) {
            return false; // If any plugin is not active, return false
        }
    }

    return true; // All plugins are active
}

class Silent_Skin extends WP_Upgrader_Skin {
    public function header() {}
    public function footer() {}
    public function feedback($string, ...$args) {}
    public function error($errors) {}
    public function before() {}
    public function after() {}
}

// Function to install and activate plugins
function novel_collections_install_and_activate_plugins() {
    if (!current_user_can('manage_options')) {
        return;
    }
    check_ajax_referer('novel_collections_welcome_nonce', 'nonce');

    // Define the recommended plugins
    $recommended_plugins = array(
        array(
            'name' => __( 'Mosaic Gallery Advanced Gallery', 'novel-collections' ),
            'slug' => 'mosaic-gallery-advanced-gallery',
            'file' => 'mosaic-image-gallery.php'
        ),
    );

    set_transient('install_and_activate_progress', array(), MINUTE_IN_SECONDS * 10);

    require_once(ABSPATH . 'wp-admin/includes/plugin-install.php');
    require_once(ABSPATH . 'wp-admin/includes/file.php');
    require_once(ABSPATH . 'wp-admin/includes/misc.php');
    require_once(ABSPATH . 'wp-admin/includes/class-wp-upgrader.php');

    foreach ($recommended_plugins as $plugin) {
        $plugin_slug = $plugin['slug'];
        $plugin_file = $plugin['file'];
        $plugin_name = $plugin['name'];

        // Check if the plugin is active
        if (is_plugin_active($plugin_slug . '/' . $plugin_file)) {
            update_install_and_activate_progress($plugin_name, 'Already Active');
            continue;
        }

        // Check if the plugin is installed but not active
        if (is_novel_collections_plugin_installed($plugin_slug)) {
            $activate = activate_plugin($plugin_slug . '/' . $plugin_file);
            if (is_wp_error($activate)) {
                update_install_and_activate_progress($plugin_name, 'Error');
                continue;
            }
            update_install_and_activate_progress($plugin_name, 'Activated');
            continue;
        }

        // Plugin is not installed or activated, proceed with installation
        update_install_and_activate_progress($plugin_name, 'Installing');

        $api = plugins_api('plugin_information', array('slug' => $plugin_slug, 'fields' => array('sections' => false)));
        if (is_wp_error($api)) {
            update_install_and_activate_progress($plugin_name, 'Error');
            continue;
        }

        $upgrader = new Plugin_Upgrader(new Silent_Skin());
        $install = $upgrader->install($api->download_link);

        if ($install) {
            $activate = activate_plugin($plugin_slug . '/' . $plugin_file);
            if (is_wp_error($activate)) {
                update_install_and_activate_progress($plugin_name, 'Error');
                continue;
            }
            update_install_and_activate_progress($plugin_name, 'Activated');
            continue;
        } else {
            update_install_and_activate_progress($plugin_name, 'Error');
        }
    }
    delete_transient('install_and_activate_progress');
    if (ob_get_length()) ob_clean();

    header('Content-Type: application/json; charset=utf-8');
    $redirect_url = admin_url('themes.php?page=novel-collections-guide-page');
    echo json_encode([
        'success' => true,
        'data' => [
            'redirect_url' => $redirect_url,
        ],
    ]);

    wp_die();
}

// Function to check if a plugin is installed
function is_novel_collections_plugin_installed($plugin_slug) {
    $installed_plugins = get_plugins();
    foreach ($installed_plugins as $path => $details) {
        if (strpos($path, $plugin_slug) === 0) {
            return true;
        }
    }
    return false;
}

// Function to update the installation progress
function update_install_and_activate_progress($plugin_name, $status) {
    $progress = get_transient('install_and_activate_progress');
    $progress[] = array('plugin' => $plugin_name, 'status' => $status);
    set_transient('install_and_activate_progress', $progress, MINUTE_IN_SECONDS * 10);
}

// Dismiss function for AJAX request
add_action('wp_ajax_novel_collections_dismissed_notice_handler', 'novel_collections_ajax_notice_dismiss_function');

function novel_collections_ajax_notice_dismiss_function() {
    if (!wp_verify_nonce($_POST['wpnonce'], 'novel_collections_welcome_nonce')) {
        wp_send_json_error('Invalid nonce');
        exit;
    }
    
    if (isset($_POST['type'])) {
        $novel_collections_type = sanitize_text_field(wp_unslash($_POST['type']));
        update_option('dismissed-' . $novel_collections_type, true);
        wp_send_json_success('Notice dismissed');
    } else {
        wp_send_json_error('Type not set');
    }
}
//  Plugin Activation End

function novel_collections_deprecated_hook_admin_notice() {
        // Check if it's been dismissed...
        if ( ! get_option('dismissed-get_started_notice', FALSE ) ) {
        $novel_collections_current_screen = get_current_screen();
			if ($novel_collections_current_screen->id !== 'appearance_page_novel-collections-guide-page') {
         $novel_collections_comments_theme = wp_get_theme(); ?>
            <div class="novel-collections-notice-wrapper updated notice notice-get-started-class is-dismissible notice-info" data-notice="get_started_notice">
			<div class="novel-collections-notice">
				<div class="novel-collections-notice-content">
					<div class="novel-collections-notice-heading">
						<h2><?php esc_html_e('Thanks For Installing ','novel-collections'); ?><?php echo esc_html( $novel_collections_comments_theme ); ?> <?php esc_html_e('Theme','novel-collections'); ?></h2>
					<p><?php 
                    /* translators: %s: theme name */
                    printf(esc_html__("%s is now installed and ready to use. We've provide some links to get you started.", 'novel-collections'), $novel_collections_comments_theme ); ?></p>
					</div>
					<div class="diplay-flex-btn">
						<a class="button button-primary button-primary theme-install" id="install-activate-button" href="#"><?php _e('GET STARTED', 'novel-collections'); ?></a>
						<a class="button button-primary" target="_blank" href="<?php echo esc_url( NOVEL_COLLECTIONS_BUY_NOW ); ?>"><?php echo esc_html__('GO TO PREMIUM','novel-collections'); ?></a>
					</div>
				</div>
				<div class="novel-collections-notice-img">
                    <a href="<?php echo esc_url( NOVEL_COLLECTIONS_THEME_BUNDLE ); ?>" target="_blank"><img src="<?php echo esc_url(get_template_directory_uri() . '/assets/images/notification.png'); ?>" alt="<?php esc_attr_e('logo', 'novel-collections'); ?>"></a>
				</div>
			</div>
		</div>
        <?php }
	}
}

add_action( 'admin_notices', 'novel_collections_deprecated_hook_admin_notice' );

// After switching theme, reset dismissed notice option
add_action('after_switch_theme', 'novel_collections_after_switch_theme');
function novel_collections_after_switch_theme() {
    update_option('dismissed-get_started_notice', FALSE);
}

function novel_collections_admin_enqueue_scripts() {
	wp_enqueue_style( 'novel-collections-admin-style', esc_url( get_template_directory_uri() ).'/assets/css/main.css' );
    wp_localize_script( 'novel-collections-admin-script', 'novel_collections_ajax_object',
        array( 'ajax_url' => admin_url( 'admin-ajax.php' ) )
    );
}
add_action( 'admin_enqueue_scripts', 'novel_collections_admin_enqueue_scripts' );

add_action( 'admin_menu', 'novel_collections_getting_started' );
function novel_collections_getting_started() {
	add_theme_page( esc_html__('Get Started', 'novel-collections'), esc_html__('Get Started', 'novel-collections'), 'edit_theme_options', 'novel-collections-guide-page', 'novel_collections_test_guide');
}

if ( ! defined( 'NOVEL_COLLECTIONS_DOCS_FREE' ) ) {
define('NOVEL_COLLECTIONS_DOCS_FREE',__('https://demo.misbahwp.com/docs/novel-collections-docs/','novel-collections'));
}
if ( ! defined( 'NOVEL_COLLECTIONS_DOCS_PRO' ) ) {
define('NOVEL_COLLECTIONS_DOCS_PRO',__('https://demo.misbahwp.com/docs/novel-collections-pro-docs/','novel-collections'));
}
if ( ! defined( 'NOVEL_COLLECTIONS_BUY_NOW' ) ) {
define('NOVEL_COLLECTIONS_BUY_NOW',__('https://www.misbahwp.com/products/novel-collection-wordpress-theme','novel-collections'));
}
if ( ! defined( 'NOVEL_COLLECTIONS_SUPPORT_FREE' ) ) {
define('NOVEL_COLLECTIONS_SUPPORT_FREE',__('https://WordPress.org/support/theme/novel-collections','novel-collections'));
}
if ( ! defined( 'NOVEL_COLLECTIONS_REVIEW_FREE' ) ) {
define('NOVEL_COLLECTIONS_REVIEW_FREE',__('https://WordPress.org/support/theme/novel-collections/reviews/#new-post','novel-collections'));
}
if ( ! defined( 'NOVEL_COLLECTIONS_DEMO_PRO' ) ) {
define('NOVEL_COLLECTIONS_DEMO_PRO',__('https://demo.misbahwp.com/novel-collections/','novel-collections'));
}
if( ! defined( 'NOVEL_COLLECTIONS_THEME_BUNDLE' ) ) {
define('NOVEL_COLLECTIONS_THEME_BUNDLE',__('https://www.misbahwp.com/products/WordPress-bundle','novel-collections'));
}

function novel_collections_test_guide() { ?>
	<?php $novel_collections_theme = wp_get_theme(); ?>

	<div class="wrap" id="main-page">
		<div id="lefty">
            <div id="lefty-up">
                <div id="description">
                    <h3><?php esc_html_e('Welcome! Thank you for choosing ','novel-collections'); ?><?php echo esc_html( $novel_collections_theme ); ?>  <span><?php esc_html_e('Version: ', 'novel-collections'); ?><?php echo esc_html($novel_collections_theme['Version']);?></span></h3>
                    <div id="description-insidee">
                        <?php
                            $novel_collections_theme = wp_get_theme();
                            echo wp_kses_post( apply_filters( 'misbah_theme_description', esc_html( $novel_collections_theme->get( 'Description' ) ) ) );
                        ?>
                    </div>
                    <div id="admin_links">
                        <h3><?php esc_html_e('Unlock More Features With Premium Version','novel-collections'); ?></h3>
                        <div id="admin_inside_links">
                            <a href="<?php echo esc_url( NOVEL_COLLECTIONS_BUY_NOW ); ?>" target="_blank" class="blue-button-1"><?php esc_html_e( 'Get Premium', 'novel-collections' ) ?></a>
                            <a href="<?php echo esc_url( NOVEL_COLLECTIONS_DEMO_PRO ); ?>" id="customizer" target="_blank"><?php esc_html_e( 'Live Demo', 'novel-collections' ); ?> </a>
                            <a class="blue-button-1" href="<?php echo esc_url( NOVEL_COLLECTIONS_DOCS_PRO ); ?>" target="_blank" class="btn3"><?php esc_html_e( 'Pro Documentation', 'novel-collections' ) ?></a>
                            <a class="blue-button-2" href="<?php echo esc_url( NOVEL_COLLECTIONS_THEME_BUNDLE ); ?>" target="_blank" class="btn4"><?php esc_html_e( 'View All Themes', 'novel-collections' ) ?></a>
                        </div>
                    </div>
                </div>
                <div id="theme-img">
                    <img class="img_responsive" style="width: 100%;" src="<?php echo esc_url( $novel_collections_theme->get_screenshot() ); ?>" />
                    <div id="img-btm-box">
                        <h3 class="bundle-box-title"><?php esc_html_e('Get This Premium Theme at Flat 20% OFF','novel-collections'); ?></h3>
                        <div class="bundle-info">
                            <div class="bundle-left">
                                <p class="coupon-text"><?php esc_html_e('Use Coupon Code:','novel-collections'); ?></p>
                                <p class="coupon-code"><?php esc_html_e('HEAT20','novel-collections'); ?></p>
                            </div>
                            <div class="bundle-right">
                                <a class="white-button" href="<?php echo esc_url( NOVEL_COLLECTIONS_BUY_NOW ); ?>" target="_blank"><?php esc_html_e( 'Buy Now $40', 'novel-collections' ) ?><span><?php esc_html_e( '$60', 'novel-collections' ) ?></span></a>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div id="lefty-down">
                <div id="admin_links">
                    <h3><?php esc_html_e('Important Links','novel-collections'); ?></h3>
                    <p id="description-insidee"><?php esc_html_e('Below are some Important Link, Customize your theme, Get Support, and If you are stuck somewhere get help with the documentation','novel-collections'); ?></p>
                    <div id="admin_inside_links">
                        <a href="<?php echo esc_url( NOVEL_COLLECTIONS_DOCS_FREE ); ?>" target="_blank" class="blue-button-1"><?php esc_html_e( 'Novel Collections Documentation', 'novel-collections' ) ?></a>
                        <a href="<?php echo esc_url( admin_url('customize.php') ); ?>" id="customizer" target="_blank"><?php esc_html_e( 'Customize Theme', 'novel-collections' ); ?> </a>
                        <a class="blue-button-1" href="<?php echo esc_url( NOVEL_COLLECTIONS_SUPPORT_FREE ); ?>" target="_blank" class="btn3"><?php esc_html_e( 'Get Support', 'novel-collections' ) ?></a>
                        <a class="blue-button-2" href="<?php echo esc_url( NOVEL_COLLECTIONS_REVIEW_FREE ); ?>" target="_blank" class="btn4"><?php esc_html_e( 'Review Theme', 'novel-collections' ) ?></a>
                    </div>
                </div>
            </div>
		</div>

		<div id="righty">
			<div class="postboxx donate">
				<h3 class="hndle bundle"><?php esc_html_e( 'Get All Themes', 'novel-collections' ); ?></h3>
				<div class="insidee theme-bundle">
					<img width="100%" src="<?php echo esc_url( get_template_directory_uri() . '/assets/images/bundle-image.png' ); ?>" alt="<?php esc_attr_e('logo', 'novel-collections'); ?>">
					<p class="offer"><?php esc_html_e('Get 110+ Perfect WordPress Theme In A Single Package at just $89.','novel-collections'); ?></p>
					<p class="coupon"><?php esc_html_e('Get Our Theme Pack of 110+ WordPress Themes At 20% Off ','novel-collections'); ?><span><?php esc_html_e('"HEAT20"','novel-collections'); ?></span></p>
				<div id="admin_pro_linkss">
					<a class="blue-button-1" href="<?php echo esc_url( NOVEL_COLLECTIONS_THEME_BUNDLE ); ?>" target="_blank"><?php esc_html_e( 'Buy All Themes - $89', 'novel-collections' ) ?></a>
				</div>
				<div class="d-table">
			    <ul class="d-column">
			      <li class="feature"><?php esc_html_e('Features','novel-collections'); ?></li>
			      <li class="free"><?php esc_html_e('Pro','novel-collections'); ?></li>
			      <li class="plus"><?php esc_html_e('Free','novel-collections'); ?></li>
			    </ul>
			    <ul class="d-row">
			      <li class="points"><?php esc_html_e('24hrs Priority Support','novel-collections'); ?></li>
			      <li class="right"><span class="dashicons dashicons-yes"></span></li>
			      <li class="wrong"><span class="dashicons dashicons-yes"></span></li>
			    </ul>
			    <ul class="d-row">
			      <li class="points"><?php esc_html_e('Advance Posttype','novel-collections'); ?></li>
			      <li class="right"><span class="dashicons dashicons-yes"></span></li>
			      <li class="wrong"><span class="dashicons dashicons-no"></span></li>
			    </ul>
			    <ul class="d-row">
			      <li class="points"><?php esc_html_e('Section Reordering','novel-collections'); ?></li>
			      <li class="right"><span class="dashicons dashicons-yes"></span></li>
			      <li class="wrong"><span class="dashicons dashicons-no"></span></li>
			    </ul>
			    <ul class="d-row">
			      <li class="points"><?php esc_html_e('Enable / Disable Option','novel-collections'); ?></li>
			      <li class="right"><span class="dashicons dashicons-yes"></span></li>
			      <li class="wrong"><span class="dashicons dashicons-yes"></span></li>
			    </ul>
			    <ul class="d-row">
			      <li class="points"><?php esc_html_e('Multiple Sections','novel-collections'); ?></li>
			      <li class="right"><span class="dashicons dashicons-yes"></span></li>
			      <li class="wrong"><span class="dashicons dashicons-no"></span></li>
			    </ul>
			    <ul class="d-row">
			      <li class="points"><?php esc_html_e('Advance Color Pallete','novel-collections'); ?></li>
			      <li class="right"><span class="dashicons dashicons-yes"></span></li>
			      <li class="wrong"><span class="dashicons dashicons-no"></span></li>
			    </ul>
			    <ul class="d-row">
			      <li class="points"><?php esc_html_e('Advance Widgets','novel-collections'); ?></li>
			      <li class="right"><span class="dashicons dashicons-yes"></span></li>
			      <li class="wrong"><span class="dashicons dashicons-yes"></span></li>
			    </ul>
			    <ul class="d-row">
			      <li class="points"><?php esc_html_e('Page Templates','novel-collections'); ?></li>
			      <li class="right"><span class="dashicons dashicons-yes"></span></li>
			      <li class="wrong"><span class="dashicons dashicons-no"></span></li>
			    </ul>
			    <ul class="d-row">
			      <li class="points"><?php esc_html_e('Advance Typography','novel-collections'); ?></li>
			      <li class="right"><span class="dashicons dashicons-yes"></span></li>
			      <li class="wrong"><span class="dashicons dashicons-no"></span></li>
			    </ul>
			    <ul class="d-row">
			      <li class="points"><?php esc_html_e('Section Background Image / Color ','novel-collections'); ?></li>
			      <li class="right"><span class="dashicons dashicons-yes"></span></li>
			      <li class="wrong"><span class="dashicons dashicons-no"></span></li>
			    </ul>
	  		</div>
			</div>
		</div>
	</div>
<?php } ?>