From 600791f339e50b7bd960bcc268d8b4f734f796b9 Mon Sep 17 00:00:00 2001 From: M_Viper Date: Wed, 11 Feb 2026 19:02:20 +0000 Subject: [PATCH] festive-seasons-pro.php aktualisiert --- festive-seasons-pro.php | 106 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 105 insertions(+), 1 deletion(-) diff --git a/festive-seasons-pro.php b/festive-seasons-pro.php index 09e4736..be5280f 100644 --- a/festive-seasons-pro.php +++ b/festive-seasons-pro.php @@ -2,7 +2,7 @@ /* Plugin Name: Festive Seasons Pro Description: Zeigt saisonale Effekte (Schnee, Eier, Spinnen, Ballons, Feuerwerk) für feste Feiertage und individuelle Geburtstage an. -Version: 1.1 +Version: 1.2 Author: M_Viper */ @@ -10,6 +10,110 @@ if (!defined('ABSPATH')) { exit; } +// === FESTIVE SEASONS PRO - UPDATE SYSTEM === + +// Aktuelle Plugin-Version aus Plugin-Header lesen +function fsp_get_plugin_version() { + if ( ! function_exists( 'get_plugin_data' ) ) { + require_once ABSPATH . 'wp-admin/includes/plugin.php'; + } + + $plugin_data = get_plugin_data( __FILE__ ); + return $plugin_data['Version'] ?? '0.0.0'; +} + +// Cache löschen (manueller Refresh) +function fsp_clear_update_cache() { + if ( isset($_GET['fsp_clear_cache']) && current_user_can('manage_options') ) { + check_admin_referer('fsp_clear_cache_action'); + delete_transient('fsp_latest_release'); + wp_redirect( admin_url('plugins.php') ); + exit; + } +} +add_action('admin_init', 'fsp_clear_update_cache'); + +// Neueste Release-Infos von Gitea holen +function fsp_get_latest_release_info( $force_refresh = false ) { + $transient_key = 'fsp_latest_release'; + + if ( $force_refresh ) { + delete_transient( $transient_key ); + } + + $release_info = get_transient( $transient_key ); + + if ( false === $release_info ) { + $response = wp_remote_get( + 'https://git.viper.ipv64.net/api/v1/repos/M_Viper/Festive-Seasons-Pro/releases/latest', + ['timeout' => 10] + ); + + if ( ! is_wp_error($response) && 200 === wp_remote_retrieve_response_code($response) ) { + $body = wp_remote_retrieve_body($response); + $data = json_decode($body, true); + + if ( $data && isset($data['tag_name']) ) { + $tag = ltrim($data['tag_name'], 'v'); + + $release_info = [ + 'version' => $tag, + 'download_url' => $data['zipball_url'] ?? '', + 'notes' => $data['body'] ?? '', + 'published_at' => $data['published_at'] ?? '', + ]; + + set_transient( $transient_key, $release_info, 6 * HOUR_IN_SECONDS ); + } else { + set_transient( $transient_key, [], HOUR_IN_SECONDS ); + } + } else { + set_transient( $transient_key, [], HOUR_IN_SECONDS ); + } + } + + return $release_info; +} + +// Admin-Notice für Plugin-Update +function fsp_show_update_notice() { + if ( ! current_user_can('manage_options') ) { + return; + } + + $current_version = fsp_get_plugin_version(); + $latest_release = fsp_get_latest_release_info(); + + if ( ! empty($latest_release['version']) && version_compare($current_version, $latest_release['version'], '<') ) { + $refresh_url = wp_nonce_url( + admin_url('plugins.php?fsp_clear_cache=1'), + 'fsp_clear_cache_action' + ); + ?> +
+

Festive Seasons Pro – Update verfügbar

+

+ Aktuelle Version:
+ Neueste Version: +

+

+ + Update herunterladen + + + Release Notes + + + Jetzt neu prüfen + +

+
+