diff --git a/wp-multi-ticket.php b/wp-multi-ticket.php index 896b0d8..3be4130 100644 --- a/wp-multi-ticket.php +++ b/wp-multi-ticket.php @@ -1,10 +1,23 @@ $current_version, + 'url' => $this->update_url, + ); + + // Gitea API – Releases + $api_url = 'https://git.viper.ipv64.net/api/v1/repos/M_Viper/wp-multi-ticket/releases'; + + $response = wp_remote_get( $api_url, array( + 'timeout' => 10, + 'headers' => array( + 'Accept' => 'application/json', + 'User-Agent' => 'WP-Multi-Ticket-Updater', + ), + ) ); + + if ( ! is_wp_error( $response ) && wp_remote_retrieve_response_code( $response ) === 200 ) { + + $releases = json_decode( wp_remote_retrieve_body( $response ), true ); + + if ( is_array( $releases ) && ! empty( $releases ) ) { + + // Neuestes Release (Gitea liefert neueste zuerst) + $latest = $releases[0]; + + // Version (genau wie im Toolkit) + if ( ! empty( $latest['tag_name'] ) ) { + $cached['version'] = ltrim( $latest['tag_name'], 'vV' ); + } elseif ( ! empty( $latest['name'] ) ) { + $cached['version'] = ltrim( $latest['name'], 'vV' ); + } + + // Exaktes ZIP-Asset suchen + if ( ! empty( $latest['assets'] ) && is_array( $latest['assets'] ) ) { + foreach ( $latest['assets'] as $asset ) { + if ( + ! empty( $asset['name'] ) && + ! empty( $asset['browser_download_url'] ) && + strtolower( $asset['name'] ) === 'wp-multi-ticket.zip' + ) { + $cached['url'] = $asset['browser_download_url']; + break; + } + } + } + } + } + + // Cache setzen + set_transient( $cache_key, $cached, 12 * HOUR_IN_SECONDS ); + } + + // Update-Hinweis anzeigen + if ( version_compare( $cached['version'], $current_version, '>' ) ) { + + echo '
WP Multi Ticket Pro – Update verfügbar
'; + echo 'Neue Version: ' . esc_html( $cached['version'] ) . '
';
+ echo 'Installiert: ' . esc_html( $current_version ) . '
'; + echo 'Release ansehen '; + echo 'Direkter Download (ZIP)'; + echo '
'; + echo '