<?php
if( ! function_exists( 'hasium_install_premium_admin_notice' ) ) {
    /**
     * Display an admin notice for premium version link
     *
     * @since 1.0.1
     * @return void
     * @use admin_notices hooks
     */
    function hasium_install_premium_admin_notice() {

        echo sprintf(
            '<div class="notice success"><p>%s</p></div>',
            sprintf(
                __("Like Hasium free version? You can also buy our premium plugin <a href='https://codecanyon.net/item/auto-robot/26798462/'>Auto Robot</a> and <a href='https://codecanyon.net/item/ultimate-instagram-wordpress-instagram-feed-gallery/28019140/'>Ultimate Instagram</a>", "hasium")
            )
        );
    }
}

if( ! function_exists( 'hasium_theme_docs_admin_notice' ) ) {
    /**
     * Display theme documents link
     *
     * @since 1.0.1
     * @return void
     * @use admin_notices hooks
     */
    function hasium_theme_docs_admin_notice() {

        echo sprintf(
            '<div class="notice alert success"><p>%s</p></div>',
            sprintf(
                __("Need Help for theme install and customize? You can check our hasium theme document <a href='https://wphobby.com/wp/hasium-docs'>Here</a>", "hasium")
            )
        );
    }
}

add_action( 'admin_notices', 'hasium_install_premium_admin_notice' );
//add_action( 'admin_notices', 'hasium_theme_docs_admin_notice' );

/**
 * Load welcome admin css and js
 * @return void
 * @since  1.0.0
 */
function hasium_admin_styles_scripts() {
    if ( is_admin() ) {
        
        // Styles
        wp_enqueue_style( 'hasium-admin-style', get_template_directory_uri() . '/assets/css/admin.css', false );

        wp_register_script( 'hasium-admin-settings', get_template_directory_uri() . '/assets/js/hasium-admin-settings.js', array( 'jquery', 'wp-util', 'updates' ), '1.2.8', false );

        $localize = array(
            'ajaxUrl'                            => admin_url( 'admin-ajax.php' ),
            'btnActivating'                      => __( 'Activating Importer Plugin ', 'hasium' ) . '&hellip;',
            'hasiumSitesLink'                     => admin_url( 'themes.php?page=hasium' ),
            'hasiumSitesLinkTitle'                => __( 'See Library', 'hasium' ),
            'recommendedPluiginActivatingText'   => __( 'Activating', 'hasium' ) . '&hellip;',
            'recommendedPluiginDeactivatingText' => __( 'Deactivating', 'hasium' ) . '&hellip;',
            'recommendedPluiginActivateText'     => __( 'Activate', 'hasium' ),
            'recommendedPluiginDeactivateText'   => __( 'Deactivate', 'hasium' ),
            'recommendedPluiginSettingsText'     => __( 'Settings', 'hasium' ),

        );
        wp_localize_script( 'hasium-admin-settings', 'hasium', apply_filters( 'hasium_theme_js_localize', $localize ) );

        // Script
        wp_enqueue_script( 'hasium-admin-settings' );
    }
}
add_action( 'admin_enqueue_scripts', 'hasium_admin_styles_scripts' );

function hasium_admin_menu(){
    if ( current_user_can( 'edit_theme_options' ) ) {
        add_theme_page(
            __('Hasium Options', 'hasium'),
            __('Hasium Options', 'hasium'),
            'administrator',
            'hasium-admin-menu',
            'hasium_welcome_page'
        );
        add_theme_page(
            'hasium-admin-menu',
            esc_html__('Welcome to Hasium','hasium'),
            esc_html__('Welcome','hasium'),
            'administrator',
            'hasium-admin-menu',
            'hasium_welcome_page'
        );
        add_theme_page(
            'hasium-admin-menu',
            esc_html__('Hasium Options','hasium'),
            esc_html__('Theme Options','hasium'),
            'manage_options',
            'customize.php' 
        );
    }
}
add_action( 'admin_menu', 'hasium_admin_menu' );

function hasium_welcome_page(){
    require_once get_template_directory() . '/inc/admin/hasium-welcome.php';
}

/**
 * Required Plugin Activate
 *
 * @since 1.2.4
 */
function hasium_required_plugin_activate() {

    if ( ! current_user_can( 'install_plugins' ) || ! isset( $_POST['init'] ) || ! $_POST['init'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
        wp_send_json_error(
            array(
                'success' => false,
                'message' => __( 'No plugin specified', 'hasium' ),
            )
        );
    }

    $plugin_init = ( isset( $_POST['init'] ) ) ? esc_attr( $_POST['init'] ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Missing

    $activate = activate_plugin( $plugin_init, '', false, true );

    if ( is_wp_error( $activate ) ) {
        wp_send_json_error(
            array(
                'success' => false,
                'message' => $activate->get_error_message(),
            )
        );
    }

    wp_send_json_success(
        array(
            'success' => true,
            'message' => __( 'Plugin Successfully Activated', 'hasium' ),
        )
    );

}

/**
 * Required Plugin Activate
 *
 * @since 1.2.4
 */
function hasium_required_plugin_deactivate() {

    if ( ! current_user_can( 'install_plugins' ) || ! isset( $_POST['init'] ) || ! $_POST['init'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
        wp_send_json_error(
            array(
                'success' => false,
                'message' => __( 'No plugin specified', 'hasium' ),
            )
        );
    }

    $plugin_init = ( isset( $_POST['init'] ) ) ? esc_attr( $_POST['init'] ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Missing

    $deactivate = deactivate_plugins( $plugin_init, '', false );

    if ( is_wp_error( $deactivate ) ) {
        wp_send_json_error(
            array(
                'success' => false,
                'message' => $deactivate->get_error_message(),
            )
        );
    }

    wp_send_json_success(
        array(
            'success' => true,
            'message' => __( 'Plugin Successfully Deactivated', 'hasium' ),
        )
    );

}

// AJAX.
add_action( 'wp_ajax_hasium-sites-plugin-activate', 'hasium_required_plugin_activate' );
add_action( 'wp_ajax_hasium-sites-plugin-deactivate', 'hasium_required_plugin_deactivate' );
