MW WP Formのカスタマイズ集
2分目次
先日から会社のスーパーレガシーな MW WP Form を作り直してるのでそのメモ。随時更新していく。
「全ての MW WP Form で独自関数を実行したい!」場合
MW WP Form ではフィルターが用意されており、そこに MW WP Form の key を書くと独自関数を実行できる。
例えばタイトルを変えるには下記のような形。
functions.php
add_filter('mwform_admin_mail_mw-wp-form-10', 'mwwpfotm_custom_admin_mail_title', 10, 3);
mwwpfotm_custom_admin_mail_title()
{
// ここでメールの中身などを変更する処理
}
これで独自関数が実行できる。当初は配列に key を突っ込んでそれをループ処理する形を考えていた。
functions.php
$custom_mw_wp_form_lists = [1, 2, 3, 4, 5, 6, 7, /* ...etc */];
foreach ($custom_mw_wp_form_lists as $key){
add_filter('mwform_admin_mail_mw-wp-form-'.$key, 'mwwpfotm_custom_admin_mail_title', 10, 3);
}
ただ、これだと逐一テーマを開いて追加していかなければならない。そこで DB から直接 key を取得して全てのフォームに独自処理を実行することにした。 (これまで数年以上全てのフォームに同じ関数を実行してきた実績があるので問答無用で全てのフォームに独自関数を実行することにした)
functions.php
// MW Wp Formのkeyを全て取得する関数(独自関数の実行にkeyが必要だが逐一テーマにkeyを追加するのは面倒なため)
/*
DBから登録済みのMW WP Formのkeyを全て取得する
********************************************************************/
if (!function_exists('get_all_mw_wp_form_key'))
{
function get_all_mw_wp_form_key()
{
global $wpdb;
$rows = $wpdb->get_results("
SELECT *
FROM $wpdb->postmeta
WHERE `meta_key` = 'mw-wp-form'
");
foreach ($rows as $row) {
echo $row->post_id."<br>";
}
}
}
まだ未完なのでとりあえずecho
状態です。