Итак, я начну с того, что я немного новичок в этом.
Итак, у меня есть сайт, который я создаю сейчас. Это веб-сайт гильдии World of Warcraft, и мы хотим, чтобы новые люди могли подавать заявки на членство.
Создать контактную форму с помощью плагинов достаточно просто, но теоретически я хочу сделать следующее:
Контактная форма, при заполнении которой форма заявки отправляет уведомление на веб-перехватчик, установленный в Discord, где при появлении новых кандидатов будет отправлено сообщение в канале, уведомляющее об этом лидеров.
Нужно ли мне создавать плагин самому или есть какой-нибудь плагин, который может предложить эту функцию?
Это своего рода облом, потому что я нашел плагин уведомлений, который действительно предлагал функцию уведомления веб-перехватчика. Но он не предлагал формы заявки в качестве триггера. : - /
Что ж, в этом случае вы, вероятно, можете попробовать настроить плагин уведомлений, чтобы включить формы приложения в качестве триггера. Может быть, переопределив действие / хук, в котором перечислены доступные триггеры и их последующий поток.

У меня были те же потребности, но через какое-то время я нашел способ сделать это.
На самом деле это очень просто с WPForms.
WPForms имеет хуки, поэтому вы можете легко отслеживать отправку форм с помощью ловушки wpforms_process_complete. Этот хук позволяет отслеживать подчинение ВСЕ WPForms. Но, возможно, вы захотите иметь другие формы. Если вы хотите отслеживать только определенную форму, вы можете добавить идентификатор формы в конец имени ловушки.
В моем случае у меня было много разных форм, которые обрабатывались по-разному, поэтому мне пришлось их разделить. Когда форма создается в WPForms, он получает идентификатор также создает поля названной формы.
В моем случае после создания моей формы у нее был следующий идентификатор:
Функция перехвата.
Как объясняется в Страница Discord Webhook, Webhooks - это простой способ публиковать сообщения на каналах в Discord. Для использования они не требуют наличия пользователя-бота или аутентификации. Конечная точка поддерживает как JSON, так и тела данных форм. В моем случае я выбрал JSON.
Как объяснено здесь, вам просто нужно использовать одно из полей content, file или embeds. В этом примере я просто отправлю сообщение, поэтому буду использовать поле content.
После применения приведенных выше инструкций у вас должно получиться что-то похожее на следующую функцию:
if ( ! function_exists( 'discord_form_submission' ) ) :
/**
* This will fire at the very end of a (successful) form entry.
*
* @link https://wpforms.com/developers/wpforms_process_complete/
*
* @param array $fields Sanitized entry field values/properties.
* @param array $entry Original $_POST global.
* @param array $form_data Form data and settings.
* @param int $entry_id Entry ID. Will return 0 if entry storage is disabled or using WPForms Lite.
*/
function discord_form_submission( $fields, $entry, $form_data, $entry_id )
{
// You have to replace this url by your discord webhook.
$endpoint = 'https://discord.com/api/webhooks/{webhook.id}/{webhook.token}';
// This is the content you can put anything you wish.
// In my case i needed the Name, Class, and the Level of the players.
$content = "**Name :** " . $fields[1]['value'] . PHP_EOL;
$content .= "**Class :** " . $fields[2]['value'] . PHP_EOL;
$content .= "**Level :** " . $fields[3]['value'] . PHP_EOL;
// WP has its own tool to send remote POST request, better use it.
wp_remote_post( $endpoint , [
'headers' => [
'Content-Type' => 'application/json; charset=utf-8'
],
'body' => wp_json_encode([ // Same for the JSON encode.
'content' => $content,
]),
'method' => 'POST',
'data_format' => 'body'
]);
}
endif;
Эта функция должна быть добавлена в файл functions.php вашей темы.
И последнее, но не менее важное: с помощью функции WP add_action вам необходимо подключиться к ловушке wpforms_process_complete. В моем случае, поскольку я хочу подключиться только к форме с идентификатором 1862, я добавил идентификатор в конец крючка, который дает нам следующий код:
add_action( 'wpforms_process_complete_1862', 'discord_form_submission', 10, 4 );
Этот код необходимо добавить в файл functions.php вашей темы после нашей недавно добавленной функции.
Я думаю, будет очень сложно найти плагин, который бы соответствовал вашим требованиям. Для этого вам придется разработать свой собственный функционал. Вы можете выбрать настройку через плагин или тему.