投稿日:2022年3月19日
修正日:2022年9月17日
form.phpのソースコード、120行目 setTimeout() 追記。
これがないと2桁の数値が入らない。
例
QRコードレーダーで17を読み込むと1と7が読み込まれる。
input関数の反応を1秒後に行うことで2桁以上の数値に対応。
※もっといい方法がないか後日検証してみます。
ここ数年、検証しては頓挫していたWordPress(Contact Form 7)で作るQRコード受付システムがようやくできました。
※「QRコード」は株式会社デンソーウェーブ様の登録商標です。
必要なWordPress Plug-Inは、Contact Form 7、Flamingo、Contact Form 7 Database Addon – CFDB7(以下、CFDB7)
申し込みフォームからの登録、QRコード付きの完了メール送信、データベースへの保存は上記のPlug-Inを使います。
これらは下記の記事にまとめてますのでご参照ください。
今回は、申し込んだ人の表示、QRコードリーダーを利用したチェック、フラグ付けなどの話しをします。
form.php
▲PHPでデータベースから取得するのはセオリー通りの書き方です。
先日の記事でお伝えした通り、CFDB7からの取得は64行目のように、unserialize
関数を使って展開します。
60行目のflag列は、確認用なのでhidden
で隠してあります。
ajaxを使い、JavaScriptから変数(変更したフラグ値)をcheck.phpへ渡しデータベースを更新します。(69行目〜関数)
check.php
▲21行目のSQLでUPDATE(更新)しています。
▲結果、このように表示されます。
▲Contact Form 7で送信したQRコード付きのメール。
内容は、下で紹介するContact Form 7からのシリアルナンバーのみです。
このQRコードをリーダーで読むとフラグを立て、状態をデータベースへ保存します。
下図のようにチェックが入り、背景色が赤くなります。
手動チェックでも、状態をデータベースへ保存できます。
▲データベース。チェック時はflagを1に、外れているときは0にします。
flagフィールドはCFDB7では作成されないので、自分で追加しました。
受付番号は、Contact Form 7の公式ページ で紹介されているショートコードを使いました。
▲このように記述します。0埋めはできません。後日検証します。
このショートコードを使うにはFlamingo 1.5以上がインストールされていることが条件になります。
シリアルナンバーの数値はFlamingoの受信メッセージ数を反映したものなので、履歴が残っていると意図しない数値から開始されてしまいます。
▲Flamingoの受信メッセージ画面
▲クリアするには、全てを選択しゴミ箱を入れましょう。
▲データベース側のリセットにはAUTO_INCREMENTを1にする必要があります。
以前にもお伝えしましたが、定評だった、Contact Form 7にシリアルナンバーを付与するPlug-In、Contact Form 7 Serial Numbersは2022年2月3日で閉鎖されてしまいました。
ダウンロードも現在できなくなっています。
WordPress.org 参照
およそ2年前から「どうにかしないといけない」と思いつつ、頓挫してた受け付けシステムがようやくできました。
何かのお役に立てればと思います。
最近になって再検証を始めたのですが、思っていたよりスムーズに進み、抱えてたモヤモヤが一つ解決した次第です。。。
普段の積み重ねが役に立ったと思いつつ、これからも、色々と挑戦したいと思います。
お断り、本記事で紹介しているソースコードは自由に使っていただいても構いませんが、問題が生じても責任は負いませんのでご了承ください。
最後まで読んでくださりありがとうございました。