Woocomemrce order and registration fileds to UPPERCASE

First add the following code (and probably the WC Test Payment Gateway) and do a test order to get a list of all the data keys that are set in the order process via the woocommerce_after_checkout_validation filter:

add_action('woocommerce_after_checkout_validation','custom_modify_order',10,1);
function custom_modify_order($posted) {
    foreach ($posted as $key => $value) {$data .= $key.":".$value.PHP_EOL;}
    $fh = fopen(get_stylesheet_directory().'/orderdebug.txt','w');
    fwrite($fh,$data); fclose($fh);
    return $posted;
}

Then when you have identified which keys you want to transform by checking orderdebug.txt (output in your current theme’s root directory), you can remove the previous code and implement the following code via the woocommerce_process_checkout_field_* filters:

// add the desired keys to this array in the following format, eg.
$uppercasefields = array('billing_first_name','billing_last_name');

foreach ($uppercasefields as $fieldkey) {
    add_filter('woocommerce_process_checkout_field_'.$fieldkey,'custom_field_to_uppercase');
}  
function custom_field_to_uppercase($value) {return strtoupper($value);}

(see function process_checkout of woocoomerce/includes/class-wc-checkout.php if you want to see where this filter is applied)

EDIT: Seems like the keys are listed here anyway:

https://docs.woothemes.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/

So you might be able to skip the first step, but it’s still a worthy debugging experience. 🙂