ContactForm7の問合せをDBに保存して管理する その4

前回の続きです。

WordPressの問合せプラグインで有名な「Contact Form 7」ですが、入力されたデータを保存する機能はなく、メールを送信するの...
前回の続きです。 サブドメインを追加 エックスサーバーのサーバーパネルからサブドメインを追加します。 ...
前回の続きです。 問い合わせフォームの編集 サンプルでつくられた問い合わせフォームを編集します。 ...

Twenty Seventeenのフッターにあるsiteinfoを編集

標準のWordPressでも問題ありませんが、変えてみました。

テーマファイルを変更するので、子テーマを作るべきですが、今回は直接fotter.phpを変更しました。

// get_template_part( 'template-parts/footer/site', 'info' );
?>
<div class="site-info">
	<a href="https://memordm.com/">Proudly powered by MemoRdm</a>
</div>

Save Contact Form 7プラグインを有効にする

問い合わせフォームの動作を確認したら、Save Contact Form 7プラグインを有効にします。

WordPressのDBを確認すると空のテーブルがひとつ追加されています。

テーブル名:SaveContactForm7_lookup

--
-- テーブルの構造 `SaveContactForm7_lookup`
--

CREATE TABLE IF NOT EXISTS `SaveContactForm7_lookup` (
  `lookup_id` int(8) NOT NULL,
  `CFDBA_tbl_name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `CF7_created_title` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  `CF7_created_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `CF7_version` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
  `CF7_form_id` int(8) NOT NULL,
  `CF7_from_wpposts_or_tbl` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  `CF7_removed_flag` enum('YES','NO') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'NO'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


--
-- Indexes for table `SaveContactForm7_lookup`
--
ALTER TABLE `SaveContactForm7_lookup`
  ADD PRIMARY KEY (`lookup_id`);

--
-- AUTO_INCREMENT for table `SaveContactForm7_lookup`
--
ALTER TABLE `SaveContactForm7_lookup`
  MODIFY `lookup_id` int(8) NOT NULL AUTO_INCREMENT;

問い合わせフォームを保存する

作成済みの問い合わせフォームの編集画面を開いて保存します。

問い合わせフォーム用に空のテーブル(SaveContactForm7_1)が作成され、SaveContactForm7_lookupテーブルにテーブルと問い合せフォームをリンクするレコードが1件登録されます。

テーブル名:SaveContactForm7_lookup

テーブル名:SaveContactForm7_1

ここに問い合わせフォームの内容が保存されます。

--
-- テーブルの構造 `SaveContactForm7_1`
--

CREATE TABLE IF NOT EXISTS `SaveContactForm7_1` (
  `id` int(8) NOT NULL,
  `created_on` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `your_name` text COLLATE utf8_unicode_ci,
  `your_email` text COLLATE utf8_unicode_ci,
  `your_subject` text COLLATE utf8_unicode_ci,
  `postal_code` text COLLATE utf8_unicode_ci,
  `address1` text COLLATE utf8_unicode_ci,
  `address2` text COLLATE utf8_unicode_ci,
  `your_message` text COLLATE utf8_unicode_ci,
  `your_acceptance` text COLLATE utf8_unicode_ci
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


--
-- Indexes for table `SaveContactForm7_1`
--
ALTER TABLE `SaveContactForm7_1`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for table `SaveContactForm7_1`
--
ALTER TABLE `SaveContactForm7_1`
  MODIFY `id` int(8) NOT NULL AUTO_INCREMENT;

問い合わせフォームを保存するテーブルは、問い合わせフォームを作成するごとに連番で増えていきます。

SaveContactForm7_1、SaveContactForm7_2、SaveContactForm7_3・・・

問い合わせフォームのIDで紐付いていますが、ContactForm7プラグインのバージョンにも紐付いていますので、ContactForm7のバージョンアップをしたときは、別テーブルになります。

別テーブルにしたくないので、「ContactForm7をバージョンアップしない」または「ContactForm7をバージョンアップしてからSaveContactForm7_lookupテーブルのレコードを手動で修正する」ことになります。

問い合わせの管理番号

SaveContactForm7_1テーブルのIDフィールドはプライムキーでAUTO_INCREMENTです。この値と、「Contact Form 7 Serial Numbers」プラグインの値を一緒にしたいので、通し番号の初期値を0にします。

問い合わせを入力する

実際に問い合わせをして、メール送信、DB保存を確認します。

入力サイト → https://inquiry.memordm.com

メールを確認する

入力した内容と、回答用のリンクが生成されました。

DBを確認する

管理画面からみる

SaveCF7をクリックし、フォームを選択すると対象のデータが表示されます。

phpMyAdminでみる

idが1で登録されているのがわかります。

次回は、この「SaveContactForm7_1テーブル」を直接、リストするphpプログラムと回答用の「SaveContactForm7_1Aテーブル」を作成し、回答を書き込むphpプログラムを作成します。

前回の続きです。 回答用のテーブルを作成する phpMyAdminでテーブルを作成します。 C...
スポンサーリンク
memordmレクタングル(大)
memordmレクタングル(大)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
memordmレクタングル(大)