true, '_builtin' => false, ); $output = 'names'; // names oder objects, names ist der Standard $operator = 'and'; // 'and' oder 'or' $post_types = get_post_types($args, $output, $operator); if (count($post_types) === 0) { $sql = "SELECT ID FROM $wpdb->posts WHERE post_type IN ('post', 'page') AND post_status = 'future' AND post_date_gmt < '$now'"; } else { $str = implode('\',\'', $post_types); $sql = "SELECT ID FROM $wpdb->posts WHERE post_type IN ('page', 'post', '$str') AND post_status = 'future' AND post_date_gmt < '$now'"; } $resulto = $wpdb->get_results($sql); if ($resulto) { foreach ($resulto as $thisarr) { wp_publish_post($thisarr->ID); } } } } // Die Funktion beim Laden der Seite aufrufen add_action('wp_head', 'pubMissedPosts'); /* * Abhängigkeitsprüfung: WP Multi Kategorie */ function wp_multi_toolkit_check_kategorie_dependency() { if (!function_exists('is_plugin_active')) { include_once(ABSPATH . 'wp-admin/includes/plugin.php'); } // Prüfen, ob WP Multi Kategorie installiert und aktiv ist if (!is_plugin_active('wp-multi-kategorie/wp-multi-kategorie.php')) { add_action('admin_notices', 'wp_multi_toolkit_kategorie_dependency_notice'); return false; } return true; } // Admin-Hinweis, falls Abhängigkeit fehlt function wp_multi_toolkit_kategorie_dependency_notice() { ?>

$plugin_name, 'title' => $title, 'description' => $description, 'label' => $label ]; $args = [ 'method' => 'POST', 'body' => json_encode($data), 'headers' => [ 'Content-Type' => 'application/json', ], 'timeout' => 45, ]; $response = wp_remote_post($server_url, $args); if (is_wp_error($response)) { $error_message = $response->get_error_message(); return "Es gab einen Fehler bei der Ticketübertragung: $error_message"; } $response_body = wp_remote_retrieve_body($response); $response_data = json_decode($response_body, true); if (isset($response_data['message']) && $response_data['message'] === 'Issues erfolgreich erstellt') { return 'Issues erfolgreich erstellt'; } else { return 'Es gab einen Fehler: ' . esc_html($response_body) . ''; } } // Support-Ticket Formular function support_ticket_form() { ?>

' . $result . '
'; } ?>
__('Entschuldigung, das verstehe ich nicht. Versuche es mit einer anderen Frage oder erstelle ein Support-Ticket unter WP-Multi Support!', 'wp-multi-toolkit') )); // Stichwörter aus den Antworten extrahieren (ohne 'default') $keywords = array_keys($assistant_responses); unset($keywords[array_search('default', $keywords)]); // Entfernt 'default' aus der Liste $keywords_list = implode(', ', $keywords); ?>

<?php _e('Virtueller Assistent', 'wp-multi-toolkit'); ?>

TG-Notify".', 'wp-multi-toolkit'); $responses['discord'] = __('Schickt Benachrichtigungen für neue Beiträge an Discord. Konfiguriere dies unter "Notify > DC-Notify".', 'wp-multi-toolkit'); $responses['admin links'] = __('Füge eigene Links (z. B. zu externen Seiten) im Adminpanel hinzu. Gehe zu "Werkzeuge > Admin-Link hinzufügen".', 'wp-multi-toolkit'); $responses['gast-autor'] = __('Gib Gastautoren unter "Benutzer > Gastautor (Übersicht)" ein. Sie werden in jedem Beitrag im Frontend angezeigt.', 'wp-multi-toolkit'); $responses['beitrag report'] = __('Unangemessene Beiträge melden und bearbeiten. Sieh die Liste unter "Gemeldete Beiträge".', 'wp-multi-toolkit'); $responses['textbox'] = __('Fügt eine Textbox mit vordefinierten Texten am Beitragsende hinzu. Texte können im Adminpanel hinterlegt werden.', 'wp-multi-toolkit'); $responses['banner'] = __('Stelle ein Informationsbanner unter "WP Stat & Notice" ein (Header oder Footer).', 'wp-multi-toolkit'); $responses['inhaltsverzeichnis'] = __('Nutze den Shortcode [alphabetical_index], um ein Inhaltsverzeichnis aller Beiträge zu erstellen.', 'wp-multi-toolkit'); $responses['lesezeichen'] = __('Gäste können Lesezeichen mit [add_bookmark] setzen und mit [display_bookmarks] anzeigen. Per Cookie gespeichert.', 'wp-multi-toolkit'); $responses['custom shortcode'] = __('Erstelle eigene Shortcodes und wähle sie unter "Beitrag erstellen" im Editor aus.', 'wp-multi-toolkit'); $responses['kommentar sperren'] = __('Sperre Benutzer für Kommentare unter "Benutzer sperren" (z. B. via Benutzername, IP, Mail).', 'wp-multi-toolkit'); $responses['filter'] = __('Verbiete Rufnummern, Mailadressen, URLs, IPs oder Schimpfwörter unter "Kommentare > Kommentar Filter". Verstöße werden mit * ersetzt.', 'wp-multi-toolkit'); $responses['analytics'] = __('Sieh die beliebtesten Beiträge (Views, Kommentare, Titel, ID, Zeitstempel) unter "Benutzer > Benutzer Analytics".', 'wp-multi-toolkit'); $responses['pinwand'] = __('Hinterlege Nachrichten für Backend-Nutzer unter "Pinnwand". Diese können erstellt, bearbeitet oder gelöscht werden.', 'wp-multi-toolkit'); $responses['brute force'] = __('Schutz vor Brute-Force: Loggt Fehlversuche und sperrt nach 5 Versuchen. Einstellungen unter "Sicherheit".', 'wp-multi-toolkit'); $responses['anti spam'] = __('Blockiert Spam und Bots. Konfiguriere dies unter "Sicherheit" mit Übersicht im Adminpanel.', 'wp-multi-toolkit'); $responses['auto tag'] = __('Fügt fehlende Tags automatisch hinzu. Verwalte verbotene Wörter unter "Beiträge > Automatische Tags".', 'wp-multi-toolkit'); $responses['login deaktivieren'] = __('Deaktiviere Logins im Profil unter "Benutzer > Alle Benutzer > Benutzer auswählen".', 'wp-multi-toolkit'); $responses['text copy'] = __('Schützt Texte vor Kopieren (Rechtsklick-Sperre). Aktiviere dies in den WP Multi-Einstellungen.', 'wp-multi-toolkit'); $responses['trash mail'] = __('Verbietet Trash-Mail-Adressen in Kommentaren. Die Liste wird vom Entwickler gepflegt.', 'wp-multi-toolkit'); // WP Multi Comment Notifications $responses['kommentar benachrichtigung'] = __('Schickt Benachrichtigungen für neue Kommentare per Mail, Telegram oder Discord. Einstellungen unter "Kommentare > Kommentar Benachrichtigung".', 'wp-multi-toolkit'); // WP Multi Kategorie $responses['kategorien ausblenden'] = __('Blende einzelne Kategorien unter "Beiträge > Kategorie Filter" aus.', 'wp-multi-toolkit'); // WP Multi Search $responses['suchfunktion'] = __('Füge eine Suchfunktion (Allgemein, Gastautor, Titel) als Shortcode, Widget oder Menüeintrag hinzu. Einstellungen unter "Einstellung > WP-Multi Search".', 'wp-multi-toolkit'); // WP Multi Toolkit $responses['update management'] = __('Zeigt den Status der WP Multi Plugins und verfügbare Updates im Dashboard-Widget "Verfügbare Updates für WP Multi Toolkit".', 'wp-multi-toolkit'); $responses['support issues'] = __('Erstelle Support-Tickets unter "WP-Multi Support" für Antworten zu WP Multi Plugins.', 'wp-multi-toolkit'); $responses['dokumentation'] = __('Finde die Dokumentation unter "WP-Multi Support > Dokumentation" mit Links zu den Plugins.', 'wp-multi-toolkit'); $responses['virtueller assistent'] = __('Ich bin der virtuelle Assistent! Stelle mir Fragen zu WP Multi Plugins unter "WP-Multi Support > Virtueller Assistent".', 'wp-multi-toolkit'); $responses['toolbar'] = __('Die Schnellstart-Toolbar unten rechts bietet Zugriff auf Support, Updates, Dokumentation und mich!', 'wp-multi-toolkit'); $responses['wp multi plugins'] = __('Folgende Plugins gehören zur WP Multi-Reihe:
- WP Multi Toolkit: Schnittstelle für alle WP Multi Plugins.
- WP Multi: Hauptplugin mit vielen Funktionen.
- WP Multi Comment Notifications: Benachrichtigungen für Kommentare.
- WP Multi Search: Erweiterte Suchfunktion.
- WP Multi Kategorie: Kategoriefilter.', 'wp-multi-toolkit'); // Allgemeine Fragen und Antworten zu WP Multi Plugins $responses['was sind wp multi plugins'] = __('Die WP Multi Plugins sind eine Sammlung von WordPress-Plugins, die erweiterte Funktionen für deine Website bieten. Dazu gehören Tools für Benachrichtigungen, Sicherheit, Statistiken, Kommentar-Management und mehr. Sieh dir die Liste unter "wp multi plugins" an!', 'wp-multi-toolkit'); $responses['wie installiere ich ein plugin'] = __('Gehe zu "Plugins > Neu hinzufügen" in deinem WordPress-Dashboard, lade die Plugin-Datei (z. B. von https://git.viper.ipv64.net/M_Viper) hoch und aktiviere es. Alternativ kannst du es manuell über FTP in den Ordner /wp-content/plugins/ hochladen und aktivieren.', 'wp-multi-toolkit'); $responses['wo finde ich updates'] = __('Updates für WP Multi Plugins findest du im Dashboard-Widget "Verfügbare Updates für WP Multi Toolkit" oder auf https://git.viper.ipv64.net/M_Viper. Lade die neueste Version herunter und aktualisiere das Plugin manuell.', 'wp-multi-toolkit'); $responses['wie erstelle ich ein support ticket'] = __('Gehe zu "WP-Multi Support" im Admin-Menü, wähle das Plugin, gib einen Titel und eine Beschreibung ein und sende das Ticket ab. Du erhältst eine Bestätigung, wenn es erfolgreich erstellt wurde.', 'wp-multi-toolkit'); $responses['welche voraussetzungen gibt es'] = __('Die WP Multi Plugins benötigen mindestens WordPress 6.7.2. Einige Funktionen (z. B. Telegram- oder Discord-Benachrichtigungen) erfordern API-Keys oder zusätzliche Konfiguration. Details findest du in der Dokumentation.', 'wp-multi-toolkit'); $responses['sind die plugins kostenlos'] = __('Ja, alle WP Multi Plugins sind kostenlos verfügbar unter https://git.viper.ipv64.net/M_Viper. Es gibt keine versteckten Kosten und es wird kein Geld angenommen.', 'wp-multi-toolkit'); $responses['wie deaktiviere ich ein plugin'] = __('Gehe zu "Plugins > Installierte Plugins" in deinem WordPress-Dashboard, suche das Plugin und klicke auf "Deaktivieren". Du kannst es danach löschen, wenn du es nicht mehr benötigst.', 'wp-multi-toolkit'); $responses['wo finde ich die dokumentation'] = __('Die Dokumentation ist unter "WP-Multi Support > Dokumentation" im Admin-Menü verfügbar. Sie enthält Details zu jedem Plugin und Links zu den Download-Seiten.', 'wp-multi-toolkit'); $responses['wer entwickelt die plugins'] = __('Die WP Multi Plugins werden von M_Viper entwickelt. Mehr Infos findest du auf https://m-viper.de oder im Repository https://git.viper.ipv64.net/M_Viper.', 'wp-multi-toolkit'); $responses['kann ich eigene funktionen hinzufügen'] = __('Ja, die Plugins sind Open Source. Du kannst den Code auf https://git.viper.ipv64.net/M_Viper anpassen. Für Vorschläge erstelle ein Support-Ticket mit der Kategorie "Verbesserung".', 'wp-multi-toolkit'); return $responses; }); /* * Schnellzugriff-Menü (Floating Toolbar) */ function wpmt_add_floating_toolbar() { if (!current_user_can('manage_options') || !is_admin()) { return; } ?>
'wpmt_sanitize_settings' )); add_settings_section('wpmt_main_section', __('WP Multi Einstellungen', 'wp-multi-toolkit'), null, 'wpmt_settings'); add_settings_field('wpmt_enable_multi', __('Multi-Funktion aktivieren', 'wp-multi-toolkit'), 'wpmt_enable_multi_callback', 'wpmt_settings', 'wpmt_main_section'); } add_action('admin_init', 'wpmt_register_settings'); function wpmt_sanitize_settings($input) { $new_input = array(); $new_input['enable_multi'] = isset($input['enable_multi']) ? 1 : 0; return $new_input; } function wpmt_enable_multi_callback() { $options = get_option('wpmt_multi_settings', array('enable_multi' => 0)); echo ''; } function wpmt_settings_page() { ?>

0)); if ($options['enable_multi']) { return '

' . __('Multi-Funktion ist aktiviert!', 'wp-multi-toolkit') . '

'; } return '

' . __('Multi-Funktion ist deaktiviert.', 'wp-multi-toolkit') . '

'; } add_shortcode('wpmt_multi', 'wpmt_multi_shortcode'); // ### Automatisierte Plugin-Dokumentation ### // Funktion zur Generierung der Dokumentation function wpmt_generate_plugin_docs() { require_once ABSPATH . 'wp-admin/includes/plugin.php'; $installed_plugins = get_plugins(); $wp_multi_plugins = array( 'wp-multi-toolkit' => array( 'file' => 'wp-multi-toolkit/wp-multi-toolkit.php', 'name' => 'WP Multi Toolkit', 'description' => __('Zentrales Toolkit für die WP Multi Plugin-Reihe mit Update-Management und Support-Funktionen.', 'wp-multi-toolkit'), 'repo' => 'wp-multi-toolkit' ), 'wp-multi' => array( 'file' => 'WP-Multi/wp-multi.php', 'name' => 'WP Multi', 'description' => __('Hauptplugin für Multi-Funktionen mit Shortcode-Unterstützung.', 'wp-multi-toolkit'), 'repo' => 'wp-multi' ), 'wp-multi-search' => array( 'file' => 'wp-multi-search/wp-multi-search.php', 'name' => 'WP Multi Search', 'description' => __('Erweiterte Suchfunktionen für WordPress.', 'wp-multi-toolkit'), 'repo' => 'WP-Multi-Search' ), 'wp-multi-comment-notifications' => array( 'file' => 'wp-multi-comment-notifications/wp-multi-comment-notifications.php', 'name' => 'WP Multi Comment Notifications', 'description' => __('Automatische Benachrichtigungen für neue Kommentare.', 'wp-multi-toolkit'), 'repo' => 'wp-multi-comment-notifications' ), 'wp-multi-kategorie' => array( 'file' => 'wp-multi-kategorie/wp-multi-kategorie.php', 'name' => 'WP Multi Kategorie', 'repo' => 'wp-multi-kategorie' ) ); ?>

$plugin) : ?>

:

:

:

:

:

:

:

:

:

$widget) + $wp_meta_boxes['dashboard']['normal']['high']; } } add_action('wp_dashboard_setup', 'wpmt_update_dashboard_widget', 1); add_action('wp_dashboard_setup', 'wpmt_force_widget_position', 999); // Widget nicht ausblendbar machen function wpmt_prevent_widget_hiding($widgets) { $widgets['wpmt_update_widget'] = array( 'id' => 'wpmt_update_widget', 'title' => __('Verfügbare Updates für WP Multi Toolkit', 'wp-multi-toolkit'), 'callback' => 'wpmt_update_dashboard_widget_content' ); return $widgets; } add_filter('dashboard_available_widgets', 'wpmt_prevent_widget_hiding'); // Benutzerdefiniertes Cron-Intervall hinzufügen add_filter('cron_schedules', function ($schedules) { $schedules['hourly'] = array( 'interval' => 3600, 'display' => __('Stündlich', 'wp-multi-toolkit'), ); return $schedules; }); // Cron-Job registrieren function wpmt_update_schedule_check() { if (!wp_next_scheduled('wpmt_update_check_event')) { wp_schedule_event(time(), 'hourly', 'wpmt_update_check_event'); } } add_action('wp', 'wpmt_update_schedule_check'); // Hilfsfunktion zur Wiederverwendung der Gitea-API-Abfrage function wpmt_fetch_latest_release($repo, $show_prereleases = false) { $api_url = "https://git.viper.ipv64.net/api/v1/repos/M_Viper/{$repo}/releases"; $response = wp_remote_get($api_url, array('timeout' => 10)); if (is_wp_error($response)) { error_log("WP Multi Toolkit Update Fehler für {$repo}: " . $response->get_error_message()); return false; } $body = wp_remote_retrieve_body($response); $data = json_decode($body, true); if (!is_array($data)) { error_log("WP Multi Toolkit Update für {$repo}: Ungültige API-Antwort"); return false; } foreach ($data as $release) { if (!$show_prereleases && isset($release['prerelease']) && $release['prerelease']) { continue; } if (!empty($release['tag_name'])) { return $release; } } return null; } // Cron-Job für Update-Überprüfung function wpmt_update_check() { require_once ABSPATH . 'wp-admin/includes/plugin.php'; $show_prereleases = get_option('wpmt_update_show_prereleases', false); $installed_plugins = get_plugins(); $plugins_to_check = array( 'wp-multi-toolkit' => 'wp-multi-toolkit/wp-multi-toolkit.php', 'wp-multi' => 'WP-Multi/wp-multi.php', 'WP-Multi-Search' => 'wp-multi-search/wp-multi-search.php', 'wp-multi-comment-notifications' => 'wp-multi-comment-notifications/wp-multi-comment-notifications.php' ); foreach ($plugins_to_check as $repo => $file) { if (array_key_exists($file, $installed_plugins) && is_plugin_active($file)) { $plugin_data = get_plugin_data(WP_PLUGIN_DIR . '/' . $file); $installed_version = $plugin_data['Version']; $valid_release = wpmt_fetch_latest_release($repo, $show_prereleases); if ($valid_release) { $latest_version = $valid_release['tag_name']; $release_notes = $valid_release['body'] ?? ''; $is_prerelease = isset($release['prerelease']) && $release['prerelease']; update_option("wpmt_update_latest_version_{$repo}", $latest_version); update_option("wpmt_update_release_notes_{$repo}", $release_notes); update_option("wpmt_update_is_prerelease_{$repo}", $is_prerelease); } } } } add_action('wpmt_update_check_event', 'wpmt_update_check'); // Funktion zur Überprüfung des Update-Server-Status function wpmt_check_update_server_status() { $update_server_url = 'https://git.viper.ipv64.net'; $response = wp_remote_head($update_server_url, array('timeout' => 5)); return !is_wp_error($response) && wp_remote_retrieve_response_code($response) == 200; } // Callback-Funktion für das Widget function wpmt_update_dashboard_widget_content() { require_once ABSPATH . 'wp-admin/includes/plugin.php'; $installed_plugins = get_plugins(); $show_prereleases = get_option('wpmt_update_show_prereleases', false); // Update-Server-Status nur bei Offline anzeigen $server_online = wpmt_check_update_server_status(); if (!$server_online) { echo '

🔴 ' . __('Update Server offline', 'wp-multi-toolkit') . '

'; echo '
'; } $plugins_to_check = array( 'wp-multi-toolkit' => array( 'file' => 'wp-multi-toolkit/wp-multi-toolkit.php', 'name' => 'WP Multi Toolkit', 'repo' => 'wp-multi-toolkit' ), 'wp-multi' => array( 'file' => 'WP-Multi/wp-multi.php', 'name' => 'WP Multi', 'repo' => 'wp-multi' ), 'WP-Multi-Search' => array( 'file' => 'wp-multi-search/wp-multi-search.php', 'name' => 'WP Multi Search', 'repo' => 'WP-Multi-Search' ), 'wp-multi-comment-notifications' => array( 'file' => 'wp-multi-comment-notifications/wp-multi-comment-notifications.php', 'name' => 'WP Multi Comment Notifications', 'repo' => 'wp-multi-comment-notifications' ), 'wp-multi-kategorie' => array( 'file' => 'wp-multi-kategorie/wp-multi-kategorie.php', 'name' => 'WP Multi Kategorie', 'repo' => 'wp-multi-kategorie' ) ); $has_active_plugins = false; foreach ($plugins_to_check as $key => $plugin) { $is_installed = array_key_exists($plugin['file'], $installed_plugins); $is_active = $is_installed && is_plugin_active($plugin['file']); if ($is_installed && $is_active) { $has_active_plugins = true; $plugin_data = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin['file']); $installed_version = $plugin_data['Version']; $valid_release = wpmt_fetch_latest_release($plugin['repo'], $show_prereleases); echo '

' . esc_html($plugin['name']) . '

'; if ($valid_release === false) { printf('

%s

', esc_html__('Fehler beim Abrufen der Versionsinformationen.', 'wp-multi-toolkit')); } elseif ($valid_release) { $latest_version = $valid_release['tag_name']; $release_notes = $valid_release['body'] ?? ''; $is_prerelease = isset($valid_release['prerelease']) && $valid_release['prerelease']; if (version_compare($installed_version, $latest_version, '>=')) { printf( '

%s

', sprintf( __('Ihre Version ist aktuell. Version %s ist die neueste Version.', 'wp-multi-toolkit'), esc_html($installed_version) ) ); } else { printf( '

%s

', sprintf( __('Es ist eine neue Version von %s verfügbar! Version %s ist jetzt verfügbar.', 'wp-multi-toolkit'), esc_html($plugin['name']), esc_html($latest_version) ) ); printf( '

%s: %s

', __('Aktuell installierte Version', 'wp-multi-toolkit'), esc_html($installed_version) ); printf( '

%s: %s

', __('Neue Version auf Gitea', 'wp-multi-toolkit'), esc_html($latest_version) ); if ($is_prerelease && $show_prereleases) { printf('

%s

', __('Dieses Update ist ein PreRelease.', 'wp-multi-toolkit')); } if (!empty($release_notes)) { printf( '

%s:

%s

', __('Information zum Update', 'wp-multi-toolkit'), nl2br(esc_html($release_notes)) ); } $button_text = $is_prerelease ? __('PreRelease herunterladen', 'wp-multi-toolkit') : __('Update herunterladen', 'wp-multi-toolkit'); $download_url = $valid_release['assets'][0]['browser_download_url'] ?? '#'; printf( '

%s

', esc_url($download_url), esc_html($button_text) ); } } else { printf('

%s

', esc_html__('Keine Versionsinformationen gefunden.', 'wp-multi-toolkit')); } } } if (!$has_active_plugins) { echo '

' . __('Keine aktiven WP Multi Plugins gefunden.', 'wp-multi-toolkit') . '

'; } // Optionale Plugins $optional_plugins = array( 'wp-multi-toolkit' => array( 'file' => 'wp-multi-toolkit/wp-multi-toolkit.php', 'download_url' => 'https://git.viper.ipv64.net/M_Viper/wp-multi-toolkit/releases', 'description' => __('Kern-Toolkit für WP Multi Plugins.', 'wp-multi-toolkit') ), 'wp-multi' => array( 'file' => 'WP-Multi/wp-multi.php', 'download_url' => 'https://git.viper.ipv64.net/M_Viper/wp-multi/releases', 'description' => __('Hauptplugin für WP Multi Funktionen.', 'wp-multi-toolkit') ), 'WP-Multi-Search' => array( 'file' => 'wp-multi-search/wp-multi-search.php', 'download_url' => 'https://git.viper.ipv64.net/M_Viper/WP-Multi-Search/releases', 'description' => __('Erweiterte Suchfunktionen.', 'wp-multi-toolkit') ), 'wp-multi-comment-notifications' => array( 'file' => 'wp-multi-comment-notifications/wp-multi-comment-notifications.php', 'download_url' => 'https://git.viper.ipv64.net/M_Viper/wp-multi-comment-notifications/releases', 'description' => __('Kommentar-Benachrichtigungen.', 'wp-multi-toolkit') ), 'wp-multi-kategorie' => array( 'file' => 'wp-multi-kategorie/wp-multi-kategorie.php', 'download_url' => 'https://git.viper.ipv64.net/M_Viper/wp-multi-kategorie/releases', 'description' => __('Erweiterte Kategorie-Funktionen für WP Multi.', 'wp-multi-toolkit') ) ); echo '

' . __('Optionale Plugins', 'wp-multi-toolkit') . '

'; echo ''; echo ''; foreach ($optional_plugins as $key => $plugin) { $is_installed = array_key_exists($plugin['file'], $installed_plugins); $is_active = $is_installed && is_plugin_active($plugin['file']); echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
' . __('Plugin', 'wp-multi-toolkit') . '' . __('Beschreibung', 'wp-multi-toolkit') . '' . __('Status', 'wp-multi-toolkit') . '' . __('Aktion', 'wp-multi-toolkit') . '
' . esc_html($plugins_to_check[$key]['name']) . '' . esc_html($plugin['description']) . ''; if ($is_active) { echo '' . __('Aktiv', 'wp-multi-toolkit') . ''; } elseif ($is_installed) { echo '' . __('Inaktiv', 'wp-multi-toolkit') . ''; } else { echo '' . __('Nicht installiert', 'wp-multi-toolkit') . ''; } echo ''; if ($is_active) { echo '—'; } elseif ($is_installed) { echo '' . __('Aktivieren', 'wp-multi-toolkit') . ''; } else { echo '' . __('Herunterladen', 'wp-multi-toolkit') . ''; } echo '
'; } // Update-Einstellungen function wpmt_update_general_settings() { add_settings_section( 'wpmt_update_section', __('WP Multi Toolkit Update Einstellungen', 'wp-multi-toolkit'), null, 'general' ); add_settings_field( 'wpmt_update_show_prereleases', __('Pre-Releases anzeigen', 'wp-multi-toolkit'), 'wpmt_update_show_prereleases_callback', 'general', 'wpmt_update_section' ); register_setting('general', 'wpmt_update_show_prereleases', array( 'type' => 'boolean', 'description' => __('Aktivieren, um Pre-Releases im Dashboard und in den Versionsinformationen anzuzeigen.', 'wp-multi-toolkit'), 'default' => 0, )); } add_action('admin_init', 'wpmt_update_general_settings'); // Callback-Funktion für das Anzeigen der Checkbox function wpmt_update_show_prereleases_callback() { $checked = get_option('wpmt_update_show_prereleases', false); echo ''; echo '

' . __('Achtung: Pre-Releases sind Beta-Versionen und können Fehler enthalten. Verwenden Sie sie nur, wenn Sie Fehlerberichterstattung oder Tests durchführen möchten.', 'wp-multi-toolkit') . '

'; } // Deinstallation function wpmt_uninstall() { $repos = array('wp-multi-toolkit', 'wp-multi', 'WP-Multi-Search', 'wp-multi-comment-notifications'); foreach ($repos as $repo) { delete_option("wpmt_update_latest_version_{$repo}"); delete_option("wpmt_update_release_notes_{$repo}"); delete_option("wpmt_update_is_prerelease_{$repo}"); } delete_option('wpmt_update_show_prereleases'); delete_option('wpmt_multi_settings'); wp_clear_scheduled_hook('wpmt_update_check_event'); } register_uninstall_hook(__FILE__, 'wpmt_uninstall');