RDRybin

Проблема стандартных уведомлений о новых комметариях — они теряются в огромном количесве входящих электронных писем. Значительно удобней собрать в одном чате все комментарии со всех сайтов.

Для этого нам нужно создать telegram бота под эти цели. Тут все как обычно:

  • Заходим в чат https://t.me/BotFather
  • Пишем команду /newbot
  • Задаем имя бота
  • Задаем username бота
  • Получаем токен бота

Создаем группу, добавляем туда нашего бота и получем id группы.

в functios.php актвной темы добавляем следующий код:

add_action( 'comment_post', 'new_comment_telegram_notify');
function new_comment_telegram_notify( $comment_ID ){
    define('TELEGRAM_TOKEN', 'тут наш токен бота');
    define('TELEGRAM_CHATID', 'тут чат id группы');
	
    $comment = get_comment( $comment_ID );
	$post = get_post( $comment->comment_post_ID );
    // сообщение
	$message  = 'Новый ответ к вашей записи: '. $post->post_title . "\r\n";
	$message .= get_permalink($comment->comment_post_ID) . "\r\n\r\n";
	$message .= sprintf( __('Author : %1$s (IP: %2$s , %3$s)'), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
	$message .= sprintf( __('URL    : %s'), $comment->comment_author_url ) . "\r\n";
	$message .= 'Текст ответа:' . "\r\n" . $comment->comment_content . "\r\n\r\n";

    $ch = curl_init('https://api.telegram.org/bot'.TELEGRAM_TOKEN.'/sendMessage?chat_id='.TELEGRAM_CHATID.'&text='.urlencode($message)); // URL
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Не возвращать ответ
    curl_exec($ch); // Делаем запрос
    curl_close($ch); // Завершаем сеанс cURL
}

Добавить комментарий

Ваш адрес email не будет опубликован.