From 38a9395c59fe7b6e95e0f063f18e0deb421d528d Mon Sep 17 00:00:00 2001 From: M_Viper Date: Wed, 9 Apr 2025 14:19:41 +0000 Subject: [PATCH] wp-multi-comment-notifications.php aktualisiert --- wp-multi-comment-notifications.php | 105 ++++------------------------- 1 file changed, 12 insertions(+), 93 deletions(-) diff --git a/wp-multi-comment-notifications.php b/wp-multi-comment-notifications.php index 90edaf3..2f8e41a 100644 --- a/wp-multi-comment-notifications.php +++ b/wp-multi-comment-notifications.php @@ -26,92 +26,6 @@ if (!defined('ABSPATH')) { define('WPMCN_PLUGIN_VERSION', '1.2'); define('WPMCN_PLUGIN_DIR', plugin_dir_path(__FILE__)); -// Abhängigkeit prüfen und WP Multi Toolkit installieren/aktivieren -function wpmcn_check_dependency() { - require_once ABSPATH . 'wp-admin/includes/plugin.php'; - $required_plugin = 'WP-Multi-Toolkit/wp-multi-toolkit.php'; - $download_url = 'https://git.viper.ipv64.net/M_Viper/wp-multi-toolkit/releases/latest/download/wp-multi-toolkit.zip'; // Direkter Download-Link zur neuesten ZIP - - // Prüfen, ob WP Multi Toolkit installiert ist - if (!file_exists(WP_PLUGIN_DIR . '/' . $required_plugin)) { - // Plugin ist nicht installiert, versuche es zu installieren - wpmcn_install_required_plugin($download_url, $required_plugin); - } - - // Prüfen, ob WP Multi Toolkit aktiv ist - if (!is_plugin_active($required_plugin)) { - // Plugin ist installiert, aber nicht aktiv, aktiviere es - $result = activate_plugin($required_plugin); - if (is_wp_error($result)) { - // Fehlerbehandlung: Admin-Benachrichtigung - add_action('admin_notices', function () use ($result) { - echo '

' . sprintf( - __('Fehler beim Aktivieren von WP Multi Toolkit: %s', 'wp-multi-comment-notifications'), - esc_html($result->get_error_message()) - ) . '

'; - }); - } - } -} - -// Funktion zum Installieren des erforderlichen Plugins -function wpmcn_install_required_plugin($download_url, $plugin_file) { - if (!current_user_can('install_plugins')) { - return; // Nur Admins können Plugins installieren - } - - require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; - require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; - require_once ABSPATH . 'wp-admin/includes/file.php'; - - // Dateisystemzugriff initialisieren - $access_type = get_filesystem_method(); - if ($access_type !== 'direct') { - add_action('admin_notices', function () { - echo '

' . __('Direkter Dateizugriff erforderlich, um WP Multi Toolkit zu installieren. Bitte überprüfe die Dateisystemkonfiguration.', 'wp-multi-comment-notifications') . '

'; - }); - return; - } - - $creds = request_filesystem_credentials(admin_url(), '', false, false, null); - if (!WP_Filesystem($creds)) { - add_action('admin_notices', function () { - echo '

' . __('Dateisystemzugriff fehlgeschlagen. WP Multi Toolkit konnte nicht installiert werden.', 'wp-multi-comment-notifications') . '

'; - }); - return; - } - - $upgrader = new Plugin_Upgrader(); - $result = $upgrader->install($download_url); - - if (is_wp_error($result)) { - add_action('admin_notices', function () use ($result) { - echo '

' . sprintf( - __('Fehler beim Installieren von WP Multi Toolkit: %s', 'wp-multi-comment-notifications'), - esc_html($result->get_error_message()) - ) . '

'; - }); - } else { - // Installation erfolgreich, aktiviere das Plugin - $activate = activate_plugin($plugin_file); - if (is_wp_error($activate)) { - add_action('admin_notices', function () use ($activate) { - echo '

' . sprintf( - __('Fehler beim Aktivieren von WP Multi Toolkit nach Installation: %s', 'wp-multi-comment-notifications'), - esc_html($activate->get_error_message()) - ) . '

'; - }); - } else { - add_action('admin_notices', function () { - echo '

' . __('WP Multi Toolkit wurde erfolgreich installiert und aktiviert.', 'wp-multi-comment-notifications') . '

'; - }); - } - } -} - -// Prüfung bei Plugin-Aktivierung und jedem Admin-Ladevorgang -register_activation_hook(__FILE__, 'wpmcn_check_dependency'); -add_action('admin_init', 'wpmcn_check_dependency'); // 1. Plugin-Optionen im Admin-Bereich unter dem Menü "Kommentare" hinzufügen function wp_multi_comment_notifications_menu() { @@ -132,8 +46,8 @@ function wp_multi_comment_notifications_settings_page() {

WP Multi Comment Notifications Einstellungen

Telegram Bot Token

@@ -147,6 +61,7 @@ function wp_multi_comment_notifications_settings_page() {

Verwende Platzhalter wie {{COMMENT_AUTHOR}}, {{COMMENT_TEXT}}, {{USER_NAME}} für dynamische Daten.

+

Nachricht für E-Mail

Verwende Platzhalter wie {{COMMENT_AUTHOR}}, {{COMMENT_TEXT}}, {{USER_NAME}} für dynamische Daten.

@@ -178,7 +93,7 @@ function wp_multi_comment_notifications_settings_page() { " /> - " /> + " /> @@ -244,6 +159,7 @@ function wp_multi_comment_notifications_register_settings() { register_setting('wp_multi_comment_notifications_settings_group', 'wp_email_logo_url'); register_setting('wp_multi_comment_notifications_settings_group', 'wp_discord_webhook_url'); register_setting('wp_multi_comment_notifications_settings_group', 'wp_discord_message'); + } add_action('admin_init', 'wp_multi_comment_notifications_register_settings'); @@ -289,9 +205,9 @@ function wp_multi_comment_notifications_on_comment($comment_ID) { $html = $logo ? "
" : ''; $html .= nl2br(esc_html($email_msg)); $headers = [ - 'Content-Type: text/html; charset=UTF-8', - 'From' => get_option('admin_email'), - ]; + 'Content-Type: text/html; charset=UTF-8', + 'From' => get_option( 'admin_email' ), + ]; wp_mail($email, 'Neuer Kommentar', $html, $headers); } @@ -309,6 +225,7 @@ function wp_multi_comment_notifications_on_comment($comment_ID) { } add_action('wp_insert_comment', 'wp_multi_comment_notifications_on_comment', 10, 1); + /** ------------------------- * Testnachrichten senden * ------------------------- */ @@ -345,6 +262,7 @@ function wp_multi_comment_notifications_send_test_message($user_number) { } } + /** ------------------------- * Telegram-Nachricht mit Button * ------------------------- */ @@ -371,6 +289,7 @@ function wp_multi_comment_notifications_send_telegram($token, $chat_id, $comment ]); } + /** ------------------------- * Discord-Nachricht senden * ------------------------- */ @@ -382,4 +301,4 @@ function wp_multi_comment_notifications_send_discord($webhook_url, $message) { 'body' => $payload, 'timeout' => 10, ]); -} \ No newline at end of file +}