Minecraft-Modern-Theme/inc/theme-updater.php aktualisiert
This commit is contained in:
@@ -5,8 +5,23 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// === ZENTRALE VERSIONSKONSTANTE ===
|
// === THEME VERSION AUTOMATISCH AUS style.css LADEN (PARENT THEME PRIORITÄT) ===
|
||||||
define( 'MINECRAFT_MODERN_THEME_VERSION', '1.6' );
|
function minecraft_modern_get_theme_version() {
|
||||||
|
// Holt das aktuell aktive Theme (child oder parent)
|
||||||
|
$theme = wp_get_theme();
|
||||||
|
|
||||||
|
// Wenn ein Child-Theme aktiv ist und ein Parent vorhanden ist, nutze die Parent-Version
|
||||||
|
$parent = $theme->parent();
|
||||||
|
if ( $parent && $parent->exists() ) {
|
||||||
|
$parent_version = $parent->get( 'Version' );
|
||||||
|
if ( ! empty( $parent_version ) ) {
|
||||||
|
return $parent_version;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fallback: Version des aktuell aktiven Themes (wenn kein Parent existiert oder Parent keine Version hat)
|
||||||
|
return $theme->get( 'Version' );
|
||||||
|
}
|
||||||
|
|
||||||
// === THEME UPDATE NOTIFICATION SYSTEM ===
|
// === THEME UPDATE NOTIFICATION SYSTEM ===
|
||||||
|
|
||||||
@@ -34,7 +49,10 @@ function minecraft_modern_get_latest_release_info( $force_refresh = false ) {
|
|||||||
|
|
||||||
if ( false === $release_info ) {
|
if ( false === $release_info ) {
|
||||||
// Timeout auf 10 Sekunden erhöht für langsame Verbindungen
|
// Timeout auf 10 Sekunden erhöht für langsame Verbindungen
|
||||||
$response = wp_remote_get( 'https://git.viper.ipv64.net/api/v1/repos/M_Viper/Minecraft-Modern-Theme/releases/latest', array( 'timeout' => 10 ) );
|
$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 ) ) {
|
if ( ! is_wp_error( $response ) && 200 === wp_remote_retrieve_response_code( $response ) ) {
|
||||||
$body = wp_remote_retrieve_body( $response );
|
$body = wp_remote_retrieve_body( $response );
|
||||||
@@ -54,7 +72,7 @@ function minecraft_modern_get_latest_release_info( $force_refresh = false ) {
|
|||||||
'published_at' => isset( $release_data['published_at'] ) ? $release_data['published_at'] : ''
|
'published_at' => isset( $release_data['published_at'] ) ? $release_data['published_at'] : ''
|
||||||
);
|
);
|
||||||
|
|
||||||
// Cache für 6 Stunden (kannst du anpassen)
|
// Cache für 6 Stunden
|
||||||
set_transient( $transient_key, $release_info, 6 * HOUR_IN_SECONDS );
|
set_transient( $transient_key, $release_info, 6 * HOUR_IN_SECONDS );
|
||||||
} else {
|
} else {
|
||||||
// Fehlerhafte Daten leer cachen
|
// Fehlerhafte Daten leer cachen
|
||||||
@@ -69,13 +87,13 @@ function minecraft_modern_get_latest_release_info( $force_refresh = false ) {
|
|||||||
return $release_info;
|
return $release_info;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Benachrichtigung im Admin-Bereich
|
// === BENACHRICHTIGUNG IM ADMIN-BEREICH ===
|
||||||
function minecraft_modern_show_update_notification() {
|
function minecraft_modern_show_update_notification() {
|
||||||
if ( ! is_admin() || ! current_user_can( 'manage_options' ) ) {
|
if ( ! is_admin() || ! current_user_can( 'manage_options' ) ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$current_version = MINECRAFT_MODERN_THEME_VERSION;
|
$current_version = minecraft_modern_get_theme_version();
|
||||||
$latest_release = minecraft_modern_get_latest_release_info();
|
$latest_release = minecraft_modern_get_latest_release_info();
|
||||||
|
|
||||||
if ( ! empty( $latest_release ) && isset( $latest_release['version'] ) && version_compare( $current_version, $latest_release['version'], '<' ) ) {
|
if ( ! empty( $latest_release ) && isset( $latest_release['version'] ) && version_compare( $current_version, $latest_release['version'], '<' ) ) {
|
||||||
@@ -105,7 +123,7 @@ function minecraft_modern_show_update_notification() {
|
|||||||
}
|
}
|
||||||
add_action( 'admin_notices', 'minecraft_modern_show_update_notification' );
|
add_action( 'admin_notices', 'minecraft_modern_show_update_notification' );
|
||||||
|
|
||||||
// Dashboard Widget
|
// === 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',
|
'minecraft_modern_update_widget',
|
||||||
@@ -116,7 +134,7 @@ function minecraft_modern_add_dashboard_widget() {
|
|||||||
add_action( 'wp_dashboard_setup', 'minecraft_modern_add_dashboard_widget' );
|
add_action( 'wp_dashboard_setup', 'minecraft_modern_add_dashboard_widget' );
|
||||||
|
|
||||||
function minecraft_modern_update_widget_function() {
|
function minecraft_modern_update_widget_function() {
|
||||||
$current_version = MINECRAFT_MODERN_THEME_VERSION;
|
$current_version = minecraft_modern_get_theme_version();
|
||||||
$latest_release = minecraft_modern_get_latest_release_info();
|
$latest_release = minecraft_modern_get_latest_release_info();
|
||||||
|
|
||||||
echo '<p><strong>' . __( 'Current Version:', 'minecraft-modern-theme' ) . '</strong> ' . esc_html( $current_version ) . '</p>';
|
echo '<p><strong>' . __( 'Current Version:', 'minecraft-modern-theme' ) . '</strong> ' . esc_html( $current_version ) . '</p>';
|
||||||
@@ -125,18 +143,18 @@ function minecraft_modern_update_widget_function() {
|
|||||||
echo '<p><strong>' . __( 'Latest Version:', 'minecraft-modern-theme' ) . '</strong> ' . esc_html( $latest_release['version'] ) . '</p>';
|
echo '<p><strong>' . __( 'Latest Version:', 'minecraft-modern-theme' ) . '</strong> ' . esc_html( $latest_release['version'] ) . '</p>';
|
||||||
|
|
||||||
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>' . __( '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>';
|
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>' . __( '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>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Link für "Jetzt prüfen" hinzugefügt
|
// Link für "Jetzt prüfen"
|
||||||
$refresh_url = wp_nonce_url( admin_url( 'index.php?mm_clear_cache=1' ), 'mm_clear_cache_action' );
|
$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="' . 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>';
|
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