👩‍💻

TransmitMailをWordPressに設置する方法

2022/10/16に公開

TransmitMailをWordPressに設置する方法

この開発のきっかけ

WordPressのお問い合わせフォームのプラグインといえば、MW WP FormやContact Form 7が有名ですが、
フリーのメールフォーム素材とWordPressを融合させる方法はないかと探していたところ、興味深い記事を発見しました。

https://dounokouno.com/2017/03/26/transmitmail-wordpress/

TransmitMailはよくお世話になっていたので、これはと思い挑戦してみましたが…
案の定上手くいかず…Twitterでこんなボヤキを…

https://twitter.com/ryohei_obayashi/status/1037954351300366336?s=20&t=mq0SoTMQDlspUmJJBYfHLA

そして、救世主が登場しました!

https://twitter.com/ryohei_obayashi/status/1038006820873203712?s=20&t=pN1VGMgXbgrTrEBQwwt68A

まさか、開発者の方とTwitterでやりとりするとは思いませんでした笑

実装ができなかった原因

form要素のaction属性の値によってどこにsubmitするかはブラウザおよびHTMLの仕様によって変わってくることを分かっていない自分でした…(/ _ ; )
つまり、TransmitMailが大きな原因ではないという事です…tagawaさんすみませんでした。

実装方法は以下の書き方となります。

  1. input.php
input.php

<form class="form_contact" method="post" action="./contact?confirm" enctype="multipart/form-data">

  1. confirm.php
confirm.php

///入力画面に戻る
<form method="post" action="./contact?input">

//完了画面に進む
<form method="post" action="./contact?finish">

  1. header.php
header.php

//お問い合わせページのtitleタグの動的にする方法

<title>

<?php elseif(is_page('contact')): ?>

<?php if (array_key_exists('confirm', $_GET)) : ?>
お問い合わせ 確認 <?php bloginfo('name'); ?>
<?php elseif (array_key_exists('finish', $_GET)) : ?>
お問い合わせ 完了 <?php bloginfo('name'); ?>
<?php else: ?>
お問い合わせ 入力画面 <?php bloginfo('name'); ?>

<?php endif; ?>

</title>

ポイントは

  1. form要素のaction属性の値をどのようにとるか
  2. タイトルタグにarray_key_exists関数を使って、各確認完了画面ページの値に$_GETを使えば動的になります。

利点は

  1. TransmitMailを使ったwebサイトへの対応
  2. WordPressの固定ページ1ページだけ(確認、完了画面ページなし)で完結できる!
  3. MW WP FormやContact Form 7が上手く実装できない時に一つの選択肢が増える。

Discussion