<?php
/**
 * Función que se encarga de comprobar si WordPress es superior a la versión 5.3 por tema de compatibilidad
 *
 * El problema es que en versiones inferiores a la 5.3, da un problema de CURL por certificados SSL, por lo que no se puede realizar la petición a la API
 *
 * @see https://www.php.net/manual/es/function.version-compare.php
 *
 * @package Compibot
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

/**
 * Comprueba si la versión de WordPress es compatible con el plugin.
 */
function compibot_check_wp_version() {
	global $wp_version;

	// Versión mínima requerida.
	$minimun_version = CompibotPlugin::MINIMUM_WP_VERSION;

	if ( version_compare( $wp_version, $minimun_version, '<' ) ) {
		// Guarda el mensaje de error en un transitorio.
		set_transient( 'compibot_activation_error', 'Compibot requiere una versión de WordPress igual o superior a la ' . esc_html( $minimun_version ) . '. Actualmente tienes instalada la versión ' . esc_html( $wp_version ), 30 );

		// Redirige automáticamente a plugins.php después de mostrar un breve mensaje.
		echo '<div style="margin-top: 20px;">
                <p>Compibot no puede ser activado porque requiere una versión de WordPress igual o superior a la ' . esc_html( $minimun_version ) . '. Actualmente tienes instalada la versión ' . esc_html( $wp_version ) . '.</p>
              </div>';
		exit; // Asegúrate de detener la ejecución del script.
	}
}

/**
 * Mostrar el aviso de error en la página de plugins.
 */
function compibot_show_admin_notice() {
	$error_message = get_transient( 'compibot_activation_error' );
	if ( $error_message ) {
		echo '<div class="notice notice-error is-dismissible">
                <p>' . esc_html( $error_message ) . '</p>
              </div>';
		delete_transient( 'compibot_activation_error' );
	}
}

/**
 * Cargar el aviso de error en la página de plugins.
 */
function compibot_load_admin_notice_on_plugins_page() {
	$current_screen = get_current_screen();
	if ( 'plugins' === $current_screen->id ) {
		add_action( 'admin_notices', 'compibot_show_admin_notice' );
	}
}
