WordPress プラグイン slack-contact-form-7 で入力内容まで Slack に送るプチハック
Slack はなかなか便利
Slack を業務で使っている。U/Iは馴染めないけれど、カスタマイズ方法が提供されてて、ツールも豊富。
サイトは WordPress を使っている
CMSなんで編集もしやすいしプラグインもテーマも揃っている。(バージョンアップが頻繁過ぎるのが玉に瑕だけど)
そうなると、問い合わせフォームはどうしても珠玉の名作 Contact-form-7プラグイン とかになる。
折角 Slack を使っているんだから問い合わせも通知させたいよね。
問い合わせ時に Slack に通知する
ということで
Slackプラグイン + Contact-form-7 + Slack-contact-form-7プラグイン を入れると問い合わせ時に Slack に通知はされる。
されるのだが・・・
Someone just sent a message through *コンタクトフォーム 1* _Contact Form 7_. Check your email!
送られてくるのなんかタイトルだけじゃん!?
これでメールを見に行くのは2度手間なのでプチハックする。
注1:Slackプラグインの設定で ☑When someone sent message through Contact Form 7 にチェックすること。
注2:Webhook のURL は、右URLから取得可能: https://slack.com/services/new/incoming-webhook
通知だけじゃなく入力内容も送るプチハック
wp-content/plugins/slack-contact-form-7/slack-contact-form-7.php を以下の様に修正する。
if ( $sent ) {
+ $submission = WPCF7_Submission::get_instance();
+ $formdata = $submission->get_posted_data();
+ $contents = '';
+ foreach ($formdata as $key => $val) {
+ if (substr($key, 0, 1) != '_') {
+ if ( is_array($val) ) {
+ $contents .= $key . ':' . implode(',', $val) . "\n";
+ } else {
+ $contents .= $key . ':' . $val . "\n";
+ }
+ }
+ }
return apply_filters( 'slack_wpcf7_submit_message',
- sprintf(
- __( 'Someone just sent a message through *%s* _Contact Form 7_. Check your email!', 'slack' ),
- is_callable( array(
- $form, 'title' ) ) ? $form->title() : $form->title
- ),
+ $contents,
$form,
$result
);
}
contact-form-7 のインスタンスから内容を取得する。
キーが _wpcf7* みたいなのはコントロールっぽいので除外する。
後は、タイトルを送っているところを丸っと消して、結合した内容を送信すればOK。
これでメールを開く手間をかけずに #Slack だけで内容を確認できるようになりました。
一応、こんな感じで slack のチャンネルに送られる。
your-name:a
your-email:[email protected]
your-subject:d
your-message:e
your-checkbox:a,b
your-radio:1
Author And Source
この問題について(WordPress プラグイン slack-contact-form-7 で入力内容まで Slack に送るプチハック), 我々は、より多くの情報をここで見つけました https://qiita.com/nekyo/items/609bdd9a605482ae4b33著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .