<?php
/**
 * Multi Review Blog functions and definitions
 *
 * @link https://developer.wordpress.org/themes/basics/theme-functions/
 *
 * @package Multi Review Blog
 */

if ( ! defined( 'MULTI_REVIEW_BLOG_VERSION' ) ) {
	// Replace the version number of the theme on each release.
	define( 'MULTI_REVIEW_BLOG_VERSION', wp_get_theme()->get( 'Version' ) );
}

if ( ! function_exists( 'multi_review_blog_setup' ) ) :
	/**
	 * Sets up theme defaults and registers support for various WordPress features.
	 *
	 * Note that this function is hooked into the after_setup_theme hook, which
	 * runs before the init hook. The init hook is too late for some features, such
	 * as indicating support for post thumbnails.
	 */
	function multi_review_blog_setup() {

		load_theme_textdomain( 'multi-review-blog', get_template_directory() . '/languages' );

		// Add default posts and comments RSS feed links to head.
		add_theme_support( 'automatic-feed-links' );

		add_theme_support( 'align-wide' );

		add_theme_support( 'woocommerce' );

		// Add support for block styles.
		add_theme_support( 'wp-block-styles' );

		// Enqueue editor styles.
		add_editor_style( 'style.css' );

		// Experimental support for adding blocks inside nav menus
		add_theme_support( 'block-nav-menus' );

		// Add support for experimental link color control.
		add_theme_support( 'experimental-link-color' );
	}
endif;
add_action( 'after_setup_theme', 'multi_review_blog_setup' );

function multi_review_blog_scripts() {

    wp_enqueue_style('multi-review-blog-style', get_stylesheet_uri(), array() );
    wp_enqueue_script('jquery-wow', get_template_directory_uri() . '/assets/js/wow.js', array('jquery'));
    wp_enqueue_style('animate-css', get_template_directory_uri() . '/assets/css/animate.css');

    //font-awesome
    wp_enqueue_style( 'fontawesome', get_template_directory_uri() . '/font-awesome/css/all.css', array(), '7.0.0' );
    
    wp_enqueue_script('multi-review-blog-custom-scripts', get_template_directory_uri() . '/assets/js/custom.js', array('jquery'), '', true);
    wp_style_add_data( 'multi-review-blog-style', 'rtl', 'replace' );

}
add_action( 'wp_enqueue_scripts', 'multi_review_blog_scripts' );


/**
 * Enqueue block editor styles
 */
function multi_review_blog_enqueue_block_editor_styles() {
    wp_enqueue_style(
        'multi-review-blog-block-editor-style', // Handle
        get_theme_file_uri( '/assets/css/block-editor.css' ), // File URI
        array(), // Dependencies
        filemtime( get_theme_file_path( '/assets/css/block-editor.css' ) ) // Version with file modification time for cache busting
    );
}
add_action( 'enqueue_block_editor_assets', 'multi_review_blog_enqueue_block_editor_styles' );


function multi_review_blog_init_setup() {

    // TGM
    require_once get_template_directory() . '/inc/tgm/tgm.php';
    
    /**
     * Section Pro
     */
    require get_template_directory() . '/inc/section-pro/customizer.php';

    // Add block patterns
    require get_template_directory() . '/inc/block-patterns.php';
    
}
add_action( 'after_setup_theme', 'multi_review_blog_init_setup' );


//////////////////////////////////////////////   Function for Translation Error   //////////////////////////////////////////////////////
function multi_review_blog_enqueue_function() {

    /**
    * GET START.
    */
    require get_template_directory() . '/getstarted/multi_review_blog_about_page.php';

    define('MULTI_REVIEW_BLOG_FREE_SUPPORT',__('https://www.revolutionwp.com/products/multi-review-blog','multi-review-blog'));
    define('MULTI_REVIEW_BLOG_PRO_SUPPORT',__('https://www.revolutionwp.com/support/revolution-wp/','multi-review-blog'));
    define('MULTI_REVIEW_BLOG_REVIEW',__('https://wordpress.org/support/theme/multi-review-blog/reviews/','multi-review-blog'));
    define('MULTI_REVIEW_BLOG_BUY_NOW',__('https://www.revolutionwp.com/products/review-blog-wordpress-theme','multi-review-blog'));
    define('MULTI_REVIEW_BLOG_LIVE_DEMO',__('https://demo.revolutionwp.com/affiliate-agency-pro/','multi-review-blog'));
    define('MULTI_REVIEW_BLOG_PRO_DOC',__('https://demo.revolutionwp.com/wpdocs/multi-review-blog-pro/','multi-review-blog'));
    define('MULTI_REVIEW_BLOG_LITE_DOC',__('https://demo.revolutionwp.com/wpdocs/multi-review-blog-free/','multi-review-blog'));
    
}
add_action( 'after_setup_theme', 'multi_review_blog_enqueue_function' );

// Add admin notice
function multi_review_blog_admin_notice() { 
    global $pagenow;
    $multi_review_blog_theme_args      = wp_get_theme();
    $multi_review_blog_meta            = get_option( 'multi_review_blog_admin_notice' );
    $name            = $multi_review_blog_theme_args->__get( 'Name' );
    $multi_review_blog_current_screen  = get_current_screen();

    if( !$multi_review_blog_meta ){
        if( is_network_admin() ){
            return;
        }

        if( ! current_user_can( 'manage_options' ) ){
            return;
        } 
        
        if( $multi_review_blog_current_screen->base !== 'appearance_page_multi_review_blog_guide') { ?>

            <div class="notice notice-success multi-review-blog-welcome-notice">
                <p class="multi-review-blog-dismiss-link">
                    <strong>
                        <a href="<?php echo esc_url( add_query_arg( 'multi_review_blog_admin_notice', '1' ) ); ?>">
                            <?php esc_html_e( 'Dismiss', 'multi-review-blog' ); ?>
                        </a>
                    </strong>
                </p>

                <div class="multi-review-blog-welcome-notice-wrap">
                    <h2 class="multi-review-blog-notice-title">
                        <span class="dashicons dashicons-admin-home"></span> 
                        <?php 
                            $multi_review_blog_theme_name = wp_get_theme()->get( 'Name' );
                            /* translators: %s!: Theme Name. */
                            echo esc_html( sprintf( __( 'Welcome to the free theme: %s!', 'multi-review-blog' ), $multi_review_blog_theme_name ) );
                        ?>
                    </h2>
                    <p class="multi-review-blog-notice-desc">
                        <?php esc_html_e( 'Get started by exploring the features of your new theme. Customize your design, add your content, and create a site that fits your vision.', 'multi-review-blog' ); ?>
                    </p>

                    <div class="multi-review-blog-welcome-info">
                        <div class="multi-review-blog-welcome-thumb">
                            <img src="<?php echo esc_url( get_stylesheet_directory_uri() . '/screenshot.png' ); ?>" alt="<?php esc_attr_e( 'Theme Screenshot', 'multi-review-blog' ); ?>">
                        </div>

                        <div class="multi-review-blog-welcome-getting-started">
                            <h3><span class="dashicons dashicons-art"></span> <?php esc_html_e( 'Customize Your Theme', 'multi-review-blog' ); ?></h3>
                            <p><?php esc_html_e( 'Want to make it truly yours? Explore the Getting Started Guide to personalize your site to suit your needs.', 'multi-review-blog' ); ?></p>
                            <p><a class="info-link button" href="<?php echo esc_url( admin_url( 'themes.php?page=multi-review-blog-getstart-page' ) ); ?>"><?php esc_html_e( 'View Getting Started Guide', 'multi-review-blog' ); ?></a></p>
                        </div>
                    </div>
                </div>
            </div>

            <?php
        }

    }
}

add_action( 'admin_notices', 'multi_review_blog_admin_notice' );

if( ! function_exists( 'multi_review_blog_update_admin_notice' ) ) :
/**
 * Updating admin notice on dismiss
*/
function multi_review_blog_update_admin_notice(){
    if ( isset( $_GET['multi_review_blog_admin_notice'] ) && $_GET['multi_review_blog_admin_notice'] = '1' ) {
        update_option( 'multi_review_blog_admin_notice', true );
    }
}
endif;
add_action( 'admin_init', 'multi_review_blog_update_admin_notice' );

add_action('after_switch_theme', 'multi_review_blog_setup_options');
function multi_review_blog_setup_options () {
    update_option('multi_review_blog_admin_notice', FALSE );
}

// Enqueue custom admin notice CSS
function multi_review_blog_enqueue_admin_notice_css( $hook ) {
    // Load CSS only on wp-admin pages (not the front end)
    wp_enqueue_style(
        'multi-review-blog-admin-notice-style',
        get_template_directory_uri() . '/assets/css/admin-notice.css',
        array(),
        wp_get_theme()->get( 'Version' )
    );
}
add_action( 'admin_enqueue_scripts', 'multi_review_blog_enqueue_admin_notice_css' );


// changelog
function multi_review_blog_get_changelog_from_readme() {
    $file_path = get_template_directory() . '/readme.txt';

    if (!file_exists($file_path)) {
        return [];
    }

    $content = file_get_contents($file_path);

    // Check if changelog exists
    if (strpos($content, '== Changelog ==') === false) {
        return [];
    }

    // Extract only changelog section
    $changelog = explode('== Changelog ==', $content)[1];

    // Match versions like = 1.0 =
    preg_match_all('/=\s*([\d\.]+)\s*=\s*(.*?)(?=\n=\s*[\d\.]+\s*=|\Z)/s', $changelog, $matches, PREG_SET_ORDER);

    return $matches;
}