My Account Register Form woocommerce
add_action(
'woocommerce_register_form'
,
'bbloomer_extra_register_select_field'
);
function
bbloomer_extra_register_select_field() {
?>
<p
class
=
"form-row form-row-wide"
>
<label
for
=
"find_where"
><?php _e(
'Where did you find us?'
,
'woocommerce'
); ?> <span
class
=
"required"
>*</span></label>
<select name=
"find_where"
id=
"find_where"
/>
<option value=
"goo"
>Google</option>
<option value=
"fcb"
>Facebook</option>
<option value=
"twt"
>Twitter</option>
</select>
</p>
<?php
}
// -------------------
// 2. Save field on Customer Created action
add_action(
'woocommerce_created_customer'
,
'bbloomer_save_extra_register_select_field'
);
function
bbloomer_save_extra_register_select_field(
$customer_id
) {
if
( isset(
$_POST
[
'find_where'
] ) ) {
update_user_meta(
$customer_id
,
'find_where'
,
$_POST
[
'find_where'
] );
}
}
// -------------------
// 3. Display Select Field @ User Profile (admin) and My Account Edit page (front end)
add_action(
'show_user_profile'
,
'bbloomer_show_extra_register_select_field'
, 30 );
add_action(
'edit_user_profile'
,
'bbloomer_show_extra_register_select_field'
, 30 );
add_action(
'woocommerce_edit_account_form'
,
'bbloomer_show_extra_register_select_field'
, 30 );
function
bbloomer_show_extra_register_select_field(
$user
){
if
(
empty
(
$user
) ) {
$user_id
= get_current_user_id();
$user
= get_userdata(
$user_id
);
}
?>
<p
class
=
"form-row form-row-wide"
>
<label
for
=
""
><?php _e(
'Where did you find us?'
,
'woocommerce'
); ?> <span
class
=
"required"
>*</span></label>
<select name=
"business_type"
id=
"business_type"
/>
<option disabled value> -- select an option -- </option>
<option value=
"slt"
<?php
if
(get_the_author_meta(
'find_where'
,
$user
->ID ) ==
"goo"
)
echo
'selected="selected" '
; ?>>Google</option>
<option value=
"prt"
<?php
if
(get_the_author_meta(
'find_where'
,
$user
->ID ) ==
"fcb"
)
echo
'selected="selected" '
; ?>>Facebook</option>
<option value=
"ltd"
<?php
if
(get_the_author_meta(
'find_where'
,
$user
->ID ) ==
"twt"
)
echo
'selected="selected" '
; ?>>Twitter</option>
</select>
</p>
<?php
}
// -------------------
// 4. Save User Field When Changed From the Admin/Front End Forms
add_action(
'personal_options_update'
,
'bbloomer_save_extra_register_select_field_admin'
);
add_action(
'edit_user_profile_update'
,
'bbloomer_save_extra_register_select_field_admin'
);
add_action(
'woocommerce_save_account_details'
,
'bbloomer_save_extra_register_select_field_admin'
);
function
bbloomer_save_extra_register_select_field_admin(
$customer_id
){
update_user_meta(
$customer_id
,
'find_where'
,
$_POST
[
'find_where'
] );
}