If you at least know how to open your “functions.php” file, the following should work if you simply add it at the bottom of your functions.php file of your (child-)theme:
// Hook in
add_filter( 'woocommerce_checkout_fields' , 'custom_add_checkout_fields' );
// Our hooked in function - $fields is passed via the filter!
function custom_add_checkout_fields( $fields ) {
$fields['billing']['Company'] = array(
'label' => __('Company', 'woocommerce'),
'placeholder' => _x('Company Name', 'placeholder', 'woocommerce'),
'required' => true,
'class' => array('form-row-wide'),
'clear' => true
);
$fields['billing']['Position'] = array(
'label' => __('Position', 'woocommerce'),
'placeholder' => _x('Position', 'placeholder', 'woocommerce'),
'required' => true,
'class' => array('form-row-wide'),
'clear' => true
);
return $fields;
}
This should add the fields to the checkout page and have them be required. Then if you want to also add that information to the emails:
add_filter('woocommerce_email_order_meta_keys', 'my_custom_order_meta_keys');
function my_custom_order_meta_keys( $keys ) {
$keys[] = 'Company'; // This will look for a custom field called 'Company' and add it to emails
$keys[] = 'Position';
return $keys;
}
Snippets used from this woocommerce doc
PLEASE NOTE
Adding this directly to your functions.php file of your theme and then updating your theme removes it – creating a child theme is best practice.
I know this whole answer might not help you, but it might help someone else.