MW WP Formでユーザー情報を取得、ログイン時には自動で入力させる

今回、メールフォーム「MW WP Form」を使って
ログインしている場合にユーザー情報が自動で表示される方法になります。

手順としては以下のとおり
1.MW WP Formでメールフォームを作成
2.作成したフォームのショートコードを設置したいページに埋め込む
3.function.phpに記入


functions.phpの記述例

//MW WP Form ログインしている場合
if ( is_user_logged_in() ){
function my_mwform_value( $value, $name ) {
	if ( $name === 'billing_last_name') {
	$current_user = wp_get_current_user();
	$value = $current_user->billing_last_name;
	return $value;
	}
return $value;
}
自動入力の項目を増やしたい場合は「if~」の記述をコピペして修正すればOK。

woocommerceの例

請求先住所を取得するときは下記のようなnameを取得。
//MW WP Form ログインしている場合
if ( is_user_logged_in() ){
function my_mwform_value( $value, $name ) {
	if ( $name === 'billing_last_name') {
	$current_user = wp_get_current_user();
	$value = $current_user->billing_last_name;
	return $value;
	}
	if ( $name === 'billing_first_name') {
	$current_user = wp_get_current_user();
	$value = $current_user->billing_first_name;
	return $value;
	}

	if ( $name === 'billing_postcode') {
	$current_user = wp_get_current_user();
	$value = $current_user->billing_postcode;
	return $value;
	}
	if ( $name === 'billing_city') {
	$current_user = wp_get_current_user();
	$value = $current_user->billing_city;
	return $value;
	}
	if ( $name === 'billing_address_1') {
	$current_user = wp_get_current_user();
	$value = $current_user->billing_address_1;
	return $value;
	}
	if ( $name === 'billing_address_2') {
	$current_user = wp_get_current_user();
	$value = $current_user->billing_address_2;
	return $value;
	}
	if ( $name === 'billing_phone') {
	$current_user = wp_get_current_user();
	$value = $current_user->billing_phone;
	return $value;
	}
	if ( $name === 'billing_email') {
	$current_user = wp_get_current_user();
	$value = $current_user->billing_email;
	return $value;
	}
return $value;
}

フックの記入

一番最後に下記をfunctions.phpに記入
add_filter( ‘mwform_value_mw-wp-form-xxx’, ‘my_mwform_value’, 10, 2 );
}
xxxの部分をショートコードのkeyの値にすればOK。 [mwform_formkey key="110"]

nameの値も合ってるのに表示されなかったとき

フォームの方で、valu=""の値を入れてた場合には表示がでません。(空の場合も同じ)
Spread the love
2023.06.07(水)