【42日目】ContactForm7の選択肢を自動変更にする
まずは振り返り
41日目の達成目標率
依頼対応 → 50% 対応中
新規事業の原稿作成 → 100% 今日の分DONE
新規事業のデザイン作成 → 100% 今日の下ごしらえはOK
Wordpressを使ったバックエンド構築 → 依頼優先なので保留
英語学習 → 100% Duolingo DONE
昨日は調べながらの作業で、今後も使うかもしれないコードができたので忘備録を書いておく。
コンタクトフォームに動的選択肢を加えたい
コンタクトフォームでWordPressではよく使われるContactForm7。
これを使って選択肢を動的にしたい、と言う状況が発生しました。
例えば就業開始の目安を月単位で取得したいときに使えます。
完成図
Q いつからの就業をご希望ですか
◯ 4月 ◉ 5月 ◯ 6月
やりたいこと
・毎月フォームを修正しないように動的に変化させる
・自動返信に選んだ値を取得させる
動的選択肢の作成
今回参考にしたのはベイジさんの下記ページ。
どう言うことかと言うと下記の通り。
ContactForm7で使うカスタムタグをfunctions.phpに登録する
ContactForm7でフォームに追加する
至ってシンプルです。
functions.phpにカスタムタグを追加する
ベイジさんで紹介されていたコードはカスタム投稿のASCという名前に設定されていたので、そのままコピペするとエラーになります。
チェクボックスからラジオボタンにも変更しておきましょう。
ちなみにタイムスタンプを使って月を取得しました。
add_action( 'wpcf7_init', 'custom_add_form_tag_month' );
function custom_add_form_tag_month() {
wpcf7_add_form_tag( 'month', 'custom_month_form_tag_handler' );
}
function custom_month_form_tag_handler( $tag ) {
return date_i18n( 'F', current_time( 'timestamp' ) );
}
add_action( 'wpcf7_init', 'custom_add_form_tag_next_month' );
function custom_add_form_tag_next_month() {
wpcf7_add_form_tag( 'next_month', 'custom_next_month_form_tag_handler' );
}
function custom_next_month_form_tag_handler( $tag ) {
return date_i18n( 'F', strtotime("+1 month", current_time('timestamp')) );
}
add_action( 'wpcf7_init', 'custom_add_form_tag_next_next_month' );
function custom_add_form_tag_next_next_month() {
wpcf7_add_form_tag( 'next_next_month', 'custom_next_next_month_form_tag_handler' );
}
function custom_next_next_month_form_tag_handler( $tag ) {
return date_i18n( 'F', strtotime("+2 month", current_time('timestamp')) );
}
守秘義務も気になるので今回は全文書きませんが、上記のコードとベイジさんのコードを組み合わせて作成しました。
自動返信メールに値を持たせる。
contactForm7からフォームの中に[タグ名アンダーバー使えます]を挿入すると、<label><input type="radio"></label>のHTMLの中に、今月、来月、再来月のラベルが挿入され、同様のValueも取得できます。
自動返信で使われる[your-mail]などはどこで使われているのか検証モードで確認すると、nameに使用されていていました。
[タグ名アンダーバー使えます]でも真似しましょう。
先ほどのコードでinputの中にnameの記載があります。name="months"としているので、これを持たせます。
就活開始時:[months]
これで、自動返信の内容では4月、5月、6月のいずれかが取得できます。
目標確認
長期的目標
期日:1959日後(現在41日/2000日)
達成率:未測定(中期的目標達成後に判断)
海外から仕事を受けるor海外で仕事をする
仕事に支障がないレベルの英語力を身につける
子供たちの留学費用を賄えるレベルで稼げるようになる
資産運用で労働以外にも収入を得られるようにする
負けない体を作る
中期的目標
期日:271日後(94日/365日)
達成率:未測定(短期的目標達成後に判断)
フロントエンドとして業務委託を増やす
TOEIC400点を目指す(12月受験)
平均月収60万を目指す
積立は毎月、成長枠NISAは年間20万円、投資信託は年間30万円投資する
ストレッチとスクワット、ランニングの習慣化
短期的目標
期日:27日後(4日/30日)
達成率:0%
フロントエンド
・ECCUBEでデモの通販サイト作成・Next.jsを使ってShopifyのアプリ化ができないか調査
・PHPを使ったバックエンドの習得
・Veu.jsを使ったアプリ構築
・その他依頼対応新規事業
・デザイン物販売は1日1枚が目標
・SNS運用フォロワ−1000人、インプ5000目標英語学習
・ELSA Spreakで発音の練習
・Duolingで4回ほど復習
・過去問.comで長文の理解と単語の暗記売り上げ
20万を目指す 今月から運用ベース筋トレに関してはタスクが重荷になっているので、気が向いたらやる
今日のタスク
依頼対応
新規事業の原稿作成
新規事業のデザイン作成
英語学習