add_action( 'woocommerce_before_order_notes', function( $checkout ) {
echo '<fieldset><legend><h3>Profile information</h3></legend>';
woocommerce_form_field(
'secondary_fname',
array(
'class' => [ 'form-row-first' ],
'type' => 'text',
'label' => 'Secondary First Name',
'required' => false,
),
$checkout->get_value( 'secondary_fname' )
);
woocommerce_form_field(
'secondary_lname',
array(
'class' => [ 'form-row-last' ],
'type' => 'text',
'label' => 'Secondary Last Name',
'required' => false,
),
$checkout->get_value( 'secondary_lname' )
);
woocommerce_form_field(
'secondary_email',
array(
'class' => [ 'form-row-wide' ],
'type' => 'email',
'label' => 'Secondary Email Address',
'placeholder' => 'myself@gmail.com',
'required' => true,
),
$checkout->get_value( 'secondary_email' )
);
woocommerce_form_field(
'licensed',
array(
'class' => [ 'form-row-wide' ],
'type' => 'radio',
'label' => 'Are you licensed?',
'required' => true,
'options' => [ 'yes' => 'Yes', 'no' => 'No' ],
),
$checkout->get_value( 'licensed' )
);
echo '</fieldset>';
} );
add_action( 'woocommerce_checkout_process', function() {
$required_fields = [
'secondary_email' => 'Secondary Email Address',
'licensed' => 'Are you licensed?',
];
foreach( $required_fields as $name => $value ) {
if( empty( $_POST[$name] ) ) {
wc_add_notice(
sprintf(
'<strong>%s</strong> is a required field.',
$value
), 'error'
);
}
}
} );
add_action( 'woocommerce_checkout_update_order_meta', function( $order_id ) {
$order = wc_get_order( $order_id );
$fields = [
'secondary_fname',
'secondary_lname',
'secondary_email',
'licensed',
];
foreach( $fields as $field ) {
if( isset( $_POST[$field] ) ) {
$order->update_meta_data(
$field,
sanitize_text_field( $_POST[$field] )
);
}
}
$order->save();
} );
Specifications here: https://rudrastyh.com/woocommerce/woocommerce_form_field.html