If you want to make sure a user can only buy one product at a time, you need to disable shopping after a user has bought a product: otherwise a user could press ‘back’, and add the other product to the cart.
That said, you could try changing the checkout fields conditionally by putting this in functions.php:
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {
global $woocommerce;
//assuming only one product in cart
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];
}
switch ($_product->id) {
case '666': //product id for product 1
//do stuff with the checkout fields
break;
case '999': //product id for product 2
//do stuff with the checkout fields
break;
}
return $fields;
}
take a look at this tutorial for more info about changing checkout fields.