diff --git a/wp-multi.php b/wp-multi.php
index 680e554..2a483b9 100644
--- a/wp-multi.php
+++ b/wp-multi.php
@@ -3,7 +3,7 @@
* Plugin Name: WP Multi
* Plugin URI: https://git.viper.ipv64.net/M_Viper/wp-multi
* Description: Erweiterter Anti-Spam-Schutz mit Honeypot, Keyword-Filter, Link-Limit und mehr. Jetzt mit Statistik im Dashboard und HappyForms-Integration.
- * Version: 2.3
+ * Version: 2.4
* Author: M_Viper
* Author URI: https://m-viper.de
* Requires at least: 6.7.2
@@ -33,7 +33,7 @@ function wp_multi_alphabetical_index($atts) {
// Hole alle Beiträge
$args = array(
'post_type' => 'post',
- 'posts_per_page' => -1, // Alle Beiträge (wir filtern später nach Buchstabenbereich)
+ 'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC',
);
@@ -866,6 +866,7 @@ function wp_multi_statistics_page() {
+
+
+
+
+ Verwenden Sie ein zufälliges Zeichenfolgen für das Honeypot-Feld.
+
+
+ Die Nachricht, die angezeigt wird, wenn ein Honeypot ausgelöst wird.
+
+ >
+ Deaktivieren Sie das Honeypot-Test-Widget im Frontend.
+
+
+ Maximale Anzahl von Links, die in einem Kommentar erlaubt sind.
+
+
+ Schlüsselwörter, die blockiert werden sollen (durch Kommas getrennt).
+
+
+ Blockierte IP-Adressen (jede Adresse in einer neuen Zeile).
+ array(
- 'Authorization' => 'token ' . $api_token
- )
- ));
+ // Hole die Einstellung, ob PreRelease-Versionen angezeigt werden sollen
+ $show_prereleases = get_option('wp_multi_update_show_prereleases', false);
+
+ // Gitea API-Anfrage für die neuesten Releases ohne Authentifizierung
+ $response = wp_remote_get($api_url);
+
+ if (is_wp_error($response)) {
+ return; // Fehler nicht weitergeben, aber nichts tun
+ }
+
+ // API-Antwort verarbeiten
+ $body = wp_remote_retrieve_body($response);
+ $data = json_decode($body, true);
+
+ // Finde das neueste, gültige Release (nicht PreRelease, falls deaktiviert)
+ $valid_release = null;
+ foreach ($data as $release) {
+ // Wenn PreRelease deaktiviert ist, überspringe alle PreRelease-Versionen
+ if (!$show_prereleases && isset($release['prerelease']) && $release['prerelease']) {
+ continue;
+ }
+
+ if (!empty($release['tag_name'])) {
+ $valid_release = $release;
+ break; // Nur das erste gültige Release verwenden
+ }
+ }
+
+ if ($valid_release) {
+ $latest_version = $valid_release['tag_name'];
+ $release_notes = isset($valid_release['body']) ? $valid_release['body'] : '';
+ $is_prerelease = isset($valid_release['prerelease']) && $valid_release['prerelease'];
+
+ // Speichern von Release-Daten
+ update_option('wp_multi_update_latest_version', $latest_version);
+ update_option('wp_multi_update_release_notes', $release_notes);
+ update_option('wp_multi_update_is_prerelease', $is_prerelease);
+ }
+}
+add_action('wp_multi_update_check_event', 'wp_multi_update_check');
+
+// Callback-Funktion für das Widget
+function wp_multi_update_dashboard_widget_content() {
+ // Gitea API-URL
+ $api_url = 'https://git.viper.ipv64.net/api/v1/repos/M_Viper/wp-multi/releases';
+
+ // Die Version des Plugins aus den Metadaten der Plugin-Datei holen
+ $plugin_data = get_plugin_data( __FILE__ );
+ $installed_version = $plugin_data['Version']; // Die installierte Version aus den Plugin-Metadaten
+
+ // Hole die Einstellung, ob PreRelease-Versionen angezeigt werden sollen
+ $show_prereleases = get_option('wp_multi_update_show_prereleases', false);
+
+ // Gitea API-Anfrage für die neuesten Releases ohne Authentifizierung
+ $response = wp_remote_get($api_url);
if (is_wp_error($response)) {
echo 'Fehler beim Abrufen der Versionsinformationen von Gitea.';
@@ -2414,11 +2519,27 @@ function wp_multi_update_dashboard_widget_content() {
// API-Antwort verarbeiten
$body = wp_remote_retrieve_body($response);
$data = json_decode($body, true);
-
- if (!empty($data) && isset($data[0]['tag_name'])) {
- $latest_version = $data[0]['tag_name']; // Neuste Version von Gitea
- // Vergleiche die installierte Version mit der neuesten Version
+ // Finde das neueste, gültige Release (nicht PreRelease, falls deaktiviert)
+ $valid_release = null;
+ foreach ($data as $release) {
+ // Wenn PreRelease deaktiviert ist, überspringe alle PreRelease-Versionen
+ if (!$show_prereleases && isset($release['prerelease']) && $release['prerelease']) {
+ continue;
+ }
+
+ if (!empty($release['tag_name'])) {
+ $valid_release = $release;
+ break; // Nur das erste gültige Release verwenden
+ }
+ }
+
+ if ($valid_release) {
+ $latest_version = $valid_release['tag_name'];
+ $release_notes = isset($valid_release['body']) ? $valid_release['body'] : '';
+ $is_prerelease = isset($valid_release['prerelease']) && $valid_release['prerelease'];
+
+ // Anzeige der Versionen und Text basierend auf PreRelease
if (version_compare($installed_version, $latest_version, '>=')) {
// Wenn die installierte Version gleich oder neuer ist als die Version in Gitea
echo '
Ihre Version ist aktuell. Version ' . $installed_version . ' ist die neueste Version.
';
@@ -2427,13 +2548,54 @@ function wp_multi_update_dashboard_widget_content() {
echo '
Es ist eine neue Version von WP Multi verfügbar! Version ' . $latest_version . ' ist jetzt verfügbar.
Aktiviere diese Option, um Pre-Release-Versionen anzuzeigen, die noch nicht vollständig veröffentlicht wurden. Deaktiviere die Option, um nur stabile Versionen anzuzeigen.