WordPress Quformお問い合わせフォームデータをカスタムDBテーブルに保存する

WordPress コンタクトフォームのプラグインであるQuformで作られたお問い合わせフォームを介して送信されるデータは、DBに保存するように設定が可能です。 また、カスタムDBテーブルに格納するようにするためのオプションも提供しています。 この記事では、 WordPress Quformお問い合わせフォームデータをカスタムDBテーブルに保存する方法について説明します。

[この記事は、2023年3月7日に最後に更新されました。 ]

WordPress Quformお問い合わせフォームデータをカスタムDBテーブルに保存する

Quform(キュポム)からのデータをDBに保存するように設定すると、データを抽出するややにくい構造にDBに格納されます。 個別お問い合わせフォームの設定ページでカスタムデータベースに保存するように設定することができます。

Quformのカスタムデータベース設定を使用する

フォーム編集画面で 設定アイコン(歯車のアイコン)> Databaseをクリックして、 Custom database settings(MySQL) オプションをEnabledに設定して、ユーザー定義のDBにフォームメールデータを保存することができます。

WordPress Quformお問い合わせフォームデータをカスタムDBテーブルに保存する

Tableフィールドにテーブル名を入力して、下の What to save セクションの列を作ってお問い合わせフォームデータをマッピングすることができます。

WordPress QuformコンタクトフォームデータをカスタムDBテーブルに保存する方法

しかし、この方法でカスタムテーブルを作成し、テストをしてみるとフォームメールを介して送信されたデータが必要なDBテーブルに格納されていない。 最初は FastCometという名前のWebホスティングでホストされているサイトでテストしたところ、この方法が機能しなくウェブホスティング特性を乗ることがないか疑っています。 しかし、 Bluehostでホストされている WordPress サイトでもテストしてみると同じようにデータが保存されない現象が現れました。

この方法で、データが保存されない場合:

  1. Quformに連絡してサポートを依頼したり、
  2. 以下の「手動で作成したカスタムDBテーブルにQuformデータを保存する」を参照して、手動でカスタムDBテーブルを作成し、テーマ関数ファイルにQuformデータをカスタムDBテーブルに格納するコードを追加します。

この方法を利用する場合は、まずテストをして、データが正しく保存されているチェックしてください。

手動で作成されたカスタムDBテーブルにQuformデータを保存する

上記の方法が機能しない場合は、手動でDBテーブルを作成してQuformデータを保存することができます。 また、他のプラグインで作成したデータベーステーブル(例えば、 KBoard 掲示板)に保存することも可能です。

手動でデータベーステーブルを作成する方法は、phpMyAdminでデータベーステーブルの作成「を参考にしてください。

カスタムDBテーブルが用意されている場合、以下のようなコードをテーマの関数ファイルに追加するようにします。

チャイルドテーマを作成チャイルドテーマの関数ファイルに追加する必要が今後のテーマが更新されても変更したり、追加した内容は消えません。

add_filter('quform_post_process_1', function (array $result, Quform_Form $form) {
    global $wpdb;
 
    $data = array(
        'email' => $form->getValueText('quform_1_3'),
        'name' => $form->getValueText('quform_1_4'),
        'date' => $form->getValueText('quform_1_5'),
        'time' => $form->getValueText('quform_1_6'),
    );
 
    $wpdb->insert('my_table', $data);
 
    return $result;
}, 10, 2);

上記のコードで...

  • ライン1の数 1フォームIDで変えるようにします。
  • ライン5から email最初のDBテーブルの列の名前に置き換えます。 そして 1_3このカラムに格納されている要素の固有のIDに置き換えます。
  • ライン6〜8に対して同じプロセスを繰り返します。 同じ方法で、より多くの列を追加することができます。
  • ライン11から 私のテーブルデータベーステーブル名に変更するようにします。

この方法を応用してQuformお問い合わせフォームから送信されたデータを KBoard 掲示板の投稿として登録するコードを作成できます。 詳しくは「WordPress Quformと KBoard 掲示板連動ソースコード「を参考にしてください。

PHPの文法に合わないようにコードを挿入すると、サイトにエラーが発生します。 そのような場合、無効なPHPコードを変更したり、コードを削除すると、サイトが正常化されています。

最後に、

以上で Quform データをカスタムデータベーステーブルに保存する方法について説明しました。 Quformはすっきり必要な機能を提供するコンタクトフォームのプラグインです。 Quformで提供されていない機能を実装する開発作業をする場合は、より豊富な機能を提供する有名な 重力フォームが適しています。

参考までに、無料のコンタクトフォームプラグインであるWPForms Liteでは、データをDBに保存する機能は提供されていませんが、アドオンプラグインを使用してディビに保存することは可能です。

参照

一部の記事にはアフィリエイトリンクが含まれている場合があり、パートナーの活動で一定額の手数料を受け取ることがあります。

コメントを残す

メールアドレスは公開されません。 必須フィールドは *と表示されます