Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c7e8703787 | |||
| 39f1d87475 |
@@ -428,10 +428,10 @@ function minecraft_modern_scroll_to_top_script() {
|
|||||||
add_action('wp_enqueue_scripts', 'minecraft_modern_scroll_to_top_script');
|
add_action('wp_enqueue_scripts', 'minecraft_modern_scroll_to_top_script');
|
||||||
|
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
// === THEME SETTINGS EXPORT / IMPORT (KORRIGIERTE VERSION) =================
|
// === THEME SETTINGS EXPORT / IMPORT (VOLLSTÄNDIG KORRIGIERT) ===============
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
|
|
||||||
// 1. Export Handler (Download) - ERWEITERT UM TEAM
|
// 1. Export Handler (Download) - ALLE EINSTELLUNGEN
|
||||||
add_action( 'admin_post_export_theme_settings', 'handle_theme_settings_export' );
|
add_action( 'admin_post_export_theme_settings', 'handle_theme_settings_export' );
|
||||||
|
|
||||||
function handle_theme_settings_export() {
|
function handle_theme_settings_export() {
|
||||||
@@ -443,25 +443,30 @@ function handle_theme_settings_export() {
|
|||||||
// Theme Slug ermitteln
|
// Theme Slug ermitteln
|
||||||
$theme_slug = get_option( 'stylesheet' );
|
$theme_slug = get_option( 'stylesheet' );
|
||||||
|
|
||||||
// 1. Theme Mods (Customizer & Announcement Settings) holen
|
// 1. Theme Mods (Customizer-Einstellungen) holen
|
||||||
$mods = get_theme_mods();
|
$mods = get_theme_mods();
|
||||||
|
|
||||||
// 2. Announcement Settings manuell hinzufügen (siehe vorheriger Schritt)
|
// 2. Announcement Settings manuell hinzufügen
|
||||||
$mods['mm_announcement_enabled'] = get_option('mm_announcement_enabled');
|
$announcement_keys = array(
|
||||||
$mods['mm_announcement_text'] = get_option('mm_announcement_text');
|
'mm_announcement_enabled',
|
||||||
$mods['mm_announcement_bg'] = get_option('mm_announcement_bg');
|
'mm_announcement_text',
|
||||||
$mods['mm_announcement_color'] = get_option('mm_announcement_color');
|
'mm_announcement_bg',
|
||||||
$mods['mm_announcement_font_size'] = get_option('mm_announcement_font_size');
|
'mm_announcement_color',
|
||||||
$mods['mm_announcement_font_family'] = get_option('mm_announcement_font_family');
|
'mm_announcement_font_size',
|
||||||
$mods['mm_announcement_position'] = get_option('mm_announcement_position');
|
'mm_announcement_font_family',
|
||||||
$mods['mm_announcement_countdown_enabled'] = get_option('mm_announcement_countdown_enabled');
|
'mm_announcement_position',
|
||||||
$mods['mm_announcement_countdown_label'] = get_option('mm_announcement_countdown_label');
|
'mm_announcement_countdown_enabled',
|
||||||
$mods['mm_announcement_countdown_date'] = get_option('mm_announcement_countdown_date');
|
'mm_announcement_countdown_label',
|
||||||
$mods['mm_announcement_countdown_expired_msg'] = get_option('mm_announcement_countdown_expired_msg');
|
'mm_announcement_countdown_date',
|
||||||
|
'mm_announcement_countdown_expired_msg'
|
||||||
|
);
|
||||||
|
|
||||||
// 3. --- NEU: Team Daten holen ---
|
foreach ( $announcement_keys as $key ) {
|
||||||
|
$mods[$key] = get_option($key);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. Team Daten holen
|
||||||
$team_data = array();
|
$team_data = array();
|
||||||
// Hole alle Teammitglieder sortiert nach Reihenfolge
|
|
||||||
$team_query = new WP_Query(array(
|
$team_query = new WP_Query(array(
|
||||||
'post_type' => 'team_member',
|
'post_type' => 'team_member',
|
||||||
'posts_per_page' => -1,
|
'posts_per_page' => -1,
|
||||||
@@ -470,18 +475,20 @@ function handle_theme_settings_export() {
|
|||||||
));
|
));
|
||||||
|
|
||||||
if ( $team_query->have_posts() ) {
|
if ( $team_query->have_posts() ) {
|
||||||
while ( $team_query->have_posts() ) : $team_query->the_post();
|
while ( $team_query->have_posts() ) {
|
||||||
|
$team_query->the_post();
|
||||||
|
|
||||||
$team_data[] = array(
|
$team_data[] = array(
|
||||||
'title' => get_the_title(),
|
'title' => get_the_title(),
|
||||||
'content' => get_the_content(),
|
'content' => get_the_content(),
|
||||||
'rank' => get_post_meta( get_the_ID(), '_team_member_rank', true ),
|
'rank' => get_post_meta( get_the_ID(), '_team_member_rank', true ),
|
||||||
'menu_order' => get_post_field( 'menu_order', get_the_ID() ),
|
'menu_order' => get_post_field( 'menu_order', get_the_ID() ),
|
||||||
// Bilder werden NICHT exportiert (siehe Hinweis unten)
|
|
||||||
);
|
);
|
||||||
endwhile;
|
}
|
||||||
|
wp_reset_postdata(); // WICHTIG: Post-Daten zurücksetzen
|
||||||
}
|
}
|
||||||
|
|
||||||
$mods['team_data'] = $team_data;
|
$mods['team_data'] = $team_data;
|
||||||
// --- ENDE TEAM EXPORT ---
|
|
||||||
|
|
||||||
// Daten als JSON vorbereiten
|
// Daten als JSON vorbereiten
|
||||||
$data = json_encode( $mods, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE );
|
$data = json_encode( $mods, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE );
|
||||||
@@ -496,7 +503,7 @@ function handle_theme_settings_export() {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. Import Handler (AJAX) - ERWEITERT UM TEAM
|
// 2. Import Handler (AJAX) - ALLE EINSTELLUNGEN
|
||||||
add_action( 'wp_ajax_import_theme_settings', 'handle_theme_settings_import' );
|
add_action( 'wp_ajax_import_theme_settings', 'handle_theme_settings_import' );
|
||||||
|
|
||||||
function handle_theme_settings_import() {
|
function handle_theme_settings_import() {
|
||||||
@@ -521,52 +528,70 @@ function handle_theme_settings_import() {
|
|||||||
wp_send_json_error( __( 'Die hochgeladene Datei ist keine gültige JSON-Datei.', 'minecraft-modern-theme' ) );
|
wp_send_json_error( __( 'Die hochgeladene Datei ist keine gültige JSON-Datei.', 'minecraft-modern-theme' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1. Theme Mods & Announcement importieren (siehe vorheriger Code)
|
// Announcement Keys definieren
|
||||||
|
$announcement_keys = array(
|
||||||
|
'mm_announcement_enabled',
|
||||||
|
'mm_announcement_text',
|
||||||
|
'mm_announcement_bg',
|
||||||
|
'mm_announcement_color',
|
||||||
|
'mm_announcement_font_size',
|
||||||
|
'mm_announcement_font_family',
|
||||||
|
'mm_announcement_position',
|
||||||
|
'mm_announcement_countdown_enabled',
|
||||||
|
'mm_announcement_countdown_label',
|
||||||
|
'mm_announcement_countdown_date',
|
||||||
|
'mm_announcement_countdown_expired_msg'
|
||||||
|
);
|
||||||
|
|
||||||
|
// KRITISCHER FIX: Team Daten VORHER extrahieren und aus Array entfernen
|
||||||
|
$team_data = isset($data['team_data']) ? $data['team_data'] : array();
|
||||||
|
unset($data['team_data']); // Verhindert Fehler beim Durchlaufen der Theme Mods
|
||||||
|
|
||||||
|
// 1. Theme Mods & Announcement importieren
|
||||||
foreach ( $data as $mod_key => $mod_value ) {
|
foreach ( $data as $mod_key => $mod_value ) {
|
||||||
// Differenzierung wie beim Export
|
// Unterscheidung: Announcement = Option, Rest = Theme Mod
|
||||||
if ( strpos( $mod_key, 'mm_announcement_' ) === 0 ) {
|
if ( in_array( $mod_key, $announcement_keys ) ) {
|
||||||
update_option( $mod_key, $mod_value );
|
update_option( $mod_key, $mod_value );
|
||||||
} else {
|
} else {
|
||||||
set_theme_mod( $mod_key, $mod_value );
|
set_theme_mod( $mod_key, $mod_value );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. --- NEU: Team Daten importieren ---
|
// 2. Team Daten importieren
|
||||||
if ( isset( $data['team_data'] ) && ! empty( $data['team_data'] ) ) {
|
if ( ! empty( $team_data ) ) {
|
||||||
|
|
||||||
// Option 1: Vorherige Team-Mitglieder löschen (Clean Import)
|
// Vorherige Team-Mitglieder löschen (Clean Import)
|
||||||
// Wir force-delete alle Posts, damit die Liste exakt so ist wie im Backup.
|
|
||||||
$existing_team = new WP_Query(array(
|
$existing_team = new WP_Query(array(
|
||||||
'post_type' => 'team_member',
|
'post_type' => 'team_member',
|
||||||
'posts_per_page' => -1,
|
'posts_per_page' => -1,
|
||||||
'fields' => 'ids' // Nur IDs holen, schneller
|
'fields' => 'ids'
|
||||||
));
|
));
|
||||||
|
|
||||||
if ( $existing_team->have_posts() ) {
|
if ( $existing_team->have_posts() ) {
|
||||||
while ( $existing_team->have_posts() ) {
|
foreach ( $existing_team->posts as $post_id ) {
|
||||||
wp_delete_post( $existing_team->next_post()->ID, true ); // true = force delete
|
wp_delete_post( $post_id, true ); // true = permanent löschen
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
wp_reset_postdata(); // WICHTIG: Post-Daten zurücksetzen
|
||||||
|
|
||||||
// Neue Mitglieder anlegen
|
// Neue Mitglieder anlegen
|
||||||
foreach ( $data['team_data'] as $member ) {
|
foreach ( $team_data as $member ) {
|
||||||
$id = wp_insert_post(array(
|
$new_id = wp_insert_post(array(
|
||||||
'post_title' => sanitize_text_field( $member['title'] ),
|
'post_title' => sanitize_text_field( $member['title'] ),
|
||||||
'post_content' => sanitize_textarea_field( $member['content'] ),
|
'post_content' => sanitize_textarea_field( $member['content'] ),
|
||||||
'post_type' => 'team_member',
|
'post_type' => 'team_member',
|
||||||
'post_status' => 'publish',
|
'post_status' => 'publish',
|
||||||
'menu_order' => isset( $member['menu_order'] ) ? intval( $member['menu_order'] ) : 0
|
'menu_order' => isset( $member['menu_order'] ) ? intval( $member['menu_order'] ) : 0
|
||||||
));
|
));
|
||||||
|
|
||||||
if ( $id && ! is_wp_error( $id ) ) {
|
if ( $new_id && ! is_wp_error( $new_id ) ) {
|
||||||
// Rang als Meta-Data speichern
|
// Rang als Meta-Data speichern
|
||||||
if ( isset( $member['rank'] ) ) {
|
if ( isset( $member['rank'] ) ) {
|
||||||
update_post_meta( $id, '_team_member_rank', sanitize_text_field( $member['rank'] ) );
|
update_post_meta( $new_id, '_team_member_rank', sanitize_text_field( $member['rank'] ) );
|
||||||
}
|
}
|
||||||
// Bilder werden NICFT importiert (siehe Hinweis unten)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// --- ENDE TEAM IMPORT ---
|
|
||||||
|
|
||||||
wp_send_json_success( __( 'Einstellungen und Team erfolgreich importiert! Bilder müssen ggf. neu hochgeladen werden.', 'minecraft-modern-theme' ) );
|
wp_send_json_success( __( 'Einstellungen und Team erfolgreich importiert! Bilder müssen ggf. neu hochgeladen werden.', 'minecraft-modern-theme' ) );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,120 +6,137 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// === ZENTRALE VERSIONSKONSTANTE ===
|
// === ZENTRALE VERSIONSKONSTANTE ===
|
||||||
// Bitte passen Sie diese Version bei jedem Release an!
|
|
||||||
define( 'MINECRAFT_MODERN_THEME_VERSION', '1.6' );
|
define( 'MINECRAFT_MODERN_THEME_VERSION', '1.6' );
|
||||||
|
|
||||||
|
|
||||||
// === THEME UPDATE NOTIFICATION SYSTEM ===
|
// === THEME UPDATE NOTIFICATION SYSTEM ===
|
||||||
|
|
||||||
// Funktion zum Abrufen der neuesten Release-Informationen vom Git-Repository
|
// Funktion zum Leeren des Caches (wenn man auf "Update prüfen" klickt)
|
||||||
function minecraft_modern_get_latest_release_info() {
|
function minecraft_modern_clear_cache() {
|
||||||
|
if ( isset( $_GET['mm_clear_cache'] ) && current_user_can( 'manage_options' ) ) {
|
||||||
|
check_admin_referer( 'mm_clear_cache_action' );
|
||||||
|
delete_transient( 'minecraft_modern_latest_release' );
|
||||||
|
wp_redirect( admin_url( 'index.php' ) );
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
add_action( 'admin_init', 'minecraft_modern_clear_cache' );
|
||||||
|
|
||||||
|
// Funktion zum Abrufen der neuesten Release-Informationen
|
||||||
|
function minecraft_modern_get_latest_release_info( $force_refresh = false ) {
|
||||||
$transient_key = 'minecraft_modern_latest_release';
|
$transient_key = 'minecraft_modern_latest_release';
|
||||||
|
|
||||||
// Versuche, die Daten aus dem Transient-Cache zu holen
|
// Wenn erzwungen wird (oder Cache leer), frische Daten holen
|
||||||
$release_info = get_transient($transient_key);
|
if ( $force_refresh ) {
|
||||||
|
delete_transient( $transient_key );
|
||||||
|
}
|
||||||
|
|
||||||
// Wenn der Cache leer oder abgelaufen ist, rufe neue Daten ab
|
$release_info = get_transient( $transient_key );
|
||||||
if (false === $release_info) {
|
|
||||||
$response = wp_remote_get('https://git.viper.ipv64.net/api/v1/repos/M_Viper/Minecraft-Modern-Theme/releases/latest');
|
|
||||||
|
|
||||||
if (!is_wp_error($response) && 200 === wp_remote_retrieve_response_code($response)) {
|
if ( false === $release_info ) {
|
||||||
$body = wp_remote_retrieve_body($response);
|
// Timeout auf 10 Sekunden erhöht für langsame Verbindungen
|
||||||
$release_data = json_decode($body, true);
|
$response = wp_remote_get( 'https://git.viper.ipv64.net/api/v1/repos/M_Viper/Minecraft-Modern-Theme/releases/latest', array( 'timeout' => 10 ) );
|
||||||
|
|
||||||
|
if ( ! is_wp_error( $response ) && 200 === wp_remote_retrieve_response_code( $response ) ) {
|
||||||
|
$body = wp_remote_retrieve_body( $response );
|
||||||
|
$release_data = json_decode( $body, true );
|
||||||
|
|
||||||
|
if ( $release_data && isset( $release_data['tag_name'] ) ) {
|
||||||
|
// Tag bereinigen (falls 'v' davor steht, z.B. v1.6 -> 1.6)
|
||||||
|
$tag_name = $release_data['tag_name'];
|
||||||
|
if ( strpos( $tag_name, 'v' ) === 0 ) {
|
||||||
|
$tag_name = ltrim( $tag_name, 'v' );
|
||||||
|
}
|
||||||
|
|
||||||
if ($release_data && isset($release_data['tag_name'])) {
|
|
||||||
$release_info = array(
|
$release_info = array(
|
||||||
'version' => $release_data['tag_name'],
|
'version' => $tag_name,
|
||||||
'download_url' => $release_data['zipball_url'],
|
'download_url' => $release_data['zipball_url'],
|
||||||
'release_notes' => isset($release_data['body']) ? $release_data['body'] : '',
|
'release_notes' => isset( $release_data['body'] ) ? $release_data['body'] : '',
|
||||||
'published_at' => isset($release_data['published_at']) ? $release_data['published_at'] : ''
|
'published_at' => isset( $release_data['published_at'] ) ? $release_data['published_at'] : ''
|
||||||
);
|
);
|
||||||
|
|
||||||
// Speichere die Daten für 12 Stunden im Cache
|
// Cache für 6 Stunden (kannst du anpassen)
|
||||||
set_transient($transient_key, $release_info, 12 * HOUR_IN_SECONDS);
|
set_transient( $transient_key, $release_info, 6 * HOUR_IN_SECONDS );
|
||||||
|
} else {
|
||||||
|
// Fehlerhafte Daten leer cachen
|
||||||
|
set_transient( $transient_key, array(), HOUR_IN_SECONDS );
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Bei Fehler, leere Daten für 1 Stunde cachen, um wiederholte fehlgeschlagene Anfragen zu vermeiden
|
// Fehler beim Abrufen
|
||||||
set_transient($transient_key, array(), HOUR_IN_SECONDS);
|
set_transient( $transient_key, array(), HOUR_IN_SECONDS );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $release_info;
|
return $release_info;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Funktion zum Anzeigen der Update-Benachrichtigung im Admin-Bereich
|
// Benachrichtigung im Admin-Bereich
|
||||||
function minecraft_modern_show_update_notification() {
|
function minecraft_modern_show_update_notification() {
|
||||||
// Nur im Admin-Bereich und für Administratoren anzeigen
|
if ( ! is_admin() || ! current_user_can( 'manage_options' ) ) {
|
||||||
if (!is_admin() || !current_user_can('manage_options')) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Aktuelle Theme-Version abrufen (JETZT AUS UNSERER KONSTANTE)
|
|
||||||
$current_version = MINECRAFT_MODERN_THEME_VERSION;
|
$current_version = MINECRAFT_MODERN_THEME_VERSION;
|
||||||
|
$latest_release = minecraft_modern_get_latest_release_info();
|
||||||
|
|
||||||
// Neueste Release-Informationen abrufen
|
if ( ! empty( $latest_release ) && isset( $latest_release['version'] ) && version_compare( $current_version, $latest_release['version'], '<' ) ) {
|
||||||
$latest_release = minecraft_modern_get_latest_release_info();
|
|
||||||
|
|
||||||
// Wenn wir gültige Release-Informationen haben und die Versionen unterschiedlich sind
|
|
||||||
if (!empty($latest_release) && isset($latest_release['version']) && version_compare($current_version, $latest_release['version'], '<')) {
|
|
||||||
?>
|
?>
|
||||||
<div class="notice notice-warning is-dismissible">
|
<div class="notice notice-warning is-dismissible">
|
||||||
<h3><?php _e('Minecraft Modern Theme Update Available', 'minecraft-modern-theme'); ?></h3>
|
<h3><?php _e( 'Minecraft Modern Theme Update Available', 'minecraft-modern-theme' ); ?></h3>
|
||||||
<p>
|
<p>
|
||||||
<?php
|
<?php
|
||||||
printf(
|
printf(
|
||||||
__('You are using version %1$s of the Minecraft Modern Theme. Version %2$s is now available.', 'minecraft-modern-theme'),
|
__( 'You are using version %1$s of the Minecraft Modern Theme. Version %2$s is now available.', 'minecraft-modern-theme' ),
|
||||||
'<strong>' . esc_html($current_version) . '</strong>',
|
'<strong>' . esc_html( $current_version ) . '</strong>',
|
||||||
'<strong>' . esc_html($latest_release['version']) . '</strong>'
|
'<strong>' . esc_html( $latest_release['version'] ) . '</strong>'
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<a href="<?php echo esc_url($latest_release['download_url']); ?>" class="button button-primary" target="_blank">
|
<a href="<?php echo esc_url( $latest_release['download_url'] ); ?>" class="button button-primary" target="_blank">
|
||||||
<?php _e('Download Latest Version', 'minecraft-modern-theme'); ?>
|
<?php _e( 'Download Latest Version', 'minecraft-modern-theme' ); ?>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://git.viper.ipv64.net/M_Viper/Minecraft-Modern-Theme/releases" class="button" target="_blank">
|
<a href="https://git.viper.ipv64.net/M_Viper/Minecraft-Modern-Theme/releases" class="button" target="_blank">
|
||||||
<?php _e('View Release Notes', 'minecraft-modern-theme'); ?>
|
<?php _e( 'View Release Notes', 'minecraft-modern-theme' ); ?>
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
add_action('admin_notices', 'minecraft_modern_show_update_notification');
|
add_action( 'admin_notices', 'minecraft_modern_show_update_notification' );
|
||||||
|
|
||||||
// Funktion zum Hinzufügen eines Update-Status-Widgets zum Dashboard
|
// Dashboard Widget
|
||||||
function minecraft_modern_add_dashboard_widget() {
|
function minecraft_modern_add_dashboard_widget() {
|
||||||
wp_add_dashboard_widget(
|
wp_add_dashboard_widget(
|
||||||
'minecraft_modern_update_widget', // Widget slug.
|
'minecraft_modern_update_widget',
|
||||||
'Minecraft Modern Theme Status', // Title.
|
'Minecraft Modern Theme Status',
|
||||||
'minecraft_modern_update_widget_function' // Display function.
|
'minecraft_modern_update_widget_function'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
add_action('wp_dashboard_setup', 'minecraft_modern_add_dashboard_widget');
|
add_action( 'wp_dashboard_setup', 'minecraft_modern_add_dashboard_widget' );
|
||||||
|
|
||||||
// Funktion zum Anzeigen des Inhalts im Dashboard-Widget
|
|
||||||
function minecraft_modern_update_widget_function() {
|
function minecraft_modern_update_widget_function() {
|
||||||
// Aktuelle Theme-Version abrufen (JETZT AUS UNSERER KONSTANTE)
|
|
||||||
$current_version = MINECRAFT_MODERN_THEME_VERSION;
|
$current_version = MINECRAFT_MODERN_THEME_VERSION;
|
||||||
|
$latest_release = minecraft_modern_get_latest_release_info();
|
||||||
|
|
||||||
// Neueste Release-Informationen abrufen
|
echo '<p><strong>' . __( 'Current Version:', 'minecraft-modern-theme' ) . '</strong> ' . esc_html( $current_version ) . '</p>';
|
||||||
$latest_release = minecraft_modern_get_latest_release_info();
|
|
||||||
|
|
||||||
echo '<p><strong>' . __('Current Version:', 'minecraft-modern-theme') . '</strong> ' . esc_html($current_version) . '</p>';
|
if ( ! empty( $latest_release ) && isset( $latest_release['version'] ) ) {
|
||||||
|
echo '<p><strong>' . __( 'Latest Version:', 'minecraft-modern-theme' ) . '</strong> ' . esc_html( $latest_release['version'] ) . '</p>';
|
||||||
|
|
||||||
if (!empty($latest_release) && isset($latest_release['version'])) {
|
if ( version_compare( $current_version, $latest_release['version'], '<' ) ) {
|
||||||
if (version_compare($current_version, $latest_release['version'], '<')) {
|
echo '<p><strong>' . __( 'Status:', 'minecraft-modern-theme' ) . '</strong> <span style="color: #d63638;">' . __( 'Update Available', 'minecraft-modern-theme' ) . '</span></p>';
|
||||||
echo '<p><strong>' . __('Latest Version:', 'minecraft-modern-theme') . '</strong> <span style="color: #d63638;">' . esc_html($latest_release['version']) . '</span></p>';
|
echo '<p><a href="' . esc_url( $latest_release['download_url'] ) . '" class="button button-primary" target="_blank">' . __( 'Download Update', 'minecraft-modern-theme' ) . '</a></p>';
|
||||||
echo '<p><strong>' . __('Status:', 'minecraft-modern-theme') . '</strong> <span style="color: #d63638;">' . __('Update Available', 'minecraft-modern-theme') . '</span></p>';
|
|
||||||
echo '<p><a href="' . esc_url($latest_release['download_url']) . '" class="button button-primary" target="_blank">' . __('Download Update', 'minecraft-modern-theme') . '</a></p>';
|
|
||||||
} else {
|
} else {
|
||||||
echo '<p><strong>' . __('Latest Version:', 'minecraft-modern-theme') . '</strong> <span style="color: #46b450;">' . esc_html($latest_release['version']) . '</span></p>';
|
echo '<p><strong>' . __( 'Status:', 'minecraft-modern-theme' ) . '</strong> <span style="color: #46b450;">' . __( 'Up to Date', 'minecraft-modern-theme' ) . '</span></p>';
|
||||||
echo '<p><strong>' . __('Status:', 'minecraft-modern-theme') . '</strong> <span style="color: #46b450;">' . __('Up to Date', 'minecraft-modern-theme') . '</span></p>';
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
echo '<p><strong>' . __('Status:', 'minecraft-modern-theme') . '</strong> ' . __('Unable to check for updates', 'minecraft-modern-theme') . '</p>';
|
echo '<p><strong>' . __( 'Status:', 'minecraft-modern-theme' ) . '</strong> ' . __( 'Unable to check for updates', 'minecraft-modern-theme' ) . '</p>';
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '<p><a href="https://git.viper.ipv64.net/M_Viper/Minecraft-Modern-Theme/releases" target="_blank">' . __('View All Releases', 'minecraft-modern-theme') . '</a></p>';
|
// Link für "Jetzt prüfen" hinzugefügt
|
||||||
|
$refresh_url = wp_nonce_url( admin_url( 'index.php?mm_clear_cache=1' ), 'mm_clear_cache_action' );
|
||||||
|
echo '<p><a href="' . esc_url( $refresh_url ) . '" onclick="return confirm(\'Cache leeren und neu prüfen?\');">' . __( 'Check for Updates Now', 'minecraft-modern-theme' ) . '</a></p>';
|
||||||
|
|
||||||
|
echo '<p><a href="https://git.viper.ipv64.net/M_Viper/Minecraft-Modern-Theme/releases" target="_blank">' . __( 'View All Releases', 'minecraft-modern-theme' ) . '</a></p>';
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user