Solution:
First create js file in your active parent/child theme
Add the code:
jQuery(function($) {
$(‘.order_data_column .date-picker’).attr(“disabled”, true);
$(‘.order_data_column .hour’).attr(“disabled”, true);
$(‘.order_data_column .minute’).attr(“disabled”, true);
$(‘.wc-customer-user select’).attr(“disabled”, true);
});
In your functions.php file add this:
function prevent_editing_shop_order_fields( $current_screen ) {
$user = wp_get_current_user();
if ( ‘shop_order’ == $current_screen->post_type && ‘post’ === $current_screen->base && isset( $user->roles[0] ) && $user->roles[0] == ‘shop_manager’ ) {
// Fix accordingly with your file
wp_enqueue_script(‘myscript’, get_stylesheet_directory_uri().’/assets/js/scripts.js’,array(‘jquery’));
}
}
add_action( ‘current_screen’, ‘prevent_editing_shop_order_fields’ );
$user->roles[0] == ‘shop_manager’ – is a condition to check if current user is shop_manager role