I try to add a birthdate field in the Woocommerce Checkout form, then save it as a user meta. I can display it with the code below but i can't save it in order to see it in the user profile page.
add_filter( 'woocommerce_billing_fields', 'add_birth_date_billing_field', 20, 1 );
function add_birth_date_billing_field($billing_fields) {
$billing_fields['billing_birth_date'] = array(
'type' => 'date',
'label' => __('Birth date'),
'class' => array('form-row-wide'),
'priority' => 25,
'required' => true,
'clear' => true,
);
return $billing_fields;
}
add_action( 'woocommerce_checkout_update_customer', 'save_checkout_account_birthday_field', 10, 2 );
function save_checkout_account_birthday_field( $customer, $data ){
if ( isset($_POST['billing_birth_date']) && ! empty($_POST['billing_birth_date']) ) {
$customer->update_meta_data( 'billing_birth_date', sanitize_text_field($_POST['billing_birth_date']) );
}
}