Add the following code in your theme’s functions.php file.
This adds the dynamic field at the top of the shipment information section
add_action( 'wpcargo_before_shipment_meta_section', 'custom_shipment_info_additional_field' ); function custom_shipment_info_additional_field( $shipment_id ){ global $wpcargo; if( !$shipment_id ){ $shipment_id = 0; } $customer = get_post_meta( $shipment_id, 'customer_fields', true ); $args = array( 'role__in' => array('wpcargo_client'), 'orderby' => 'display_name', 'order' => 'ASC' ); $users = array(); if( !empty( get_users( $args ) ) ){ foreach ( get_users( $args ) as $user ) { $users[$user->ID] = $wpcargo->user_fullname( $user->ID ); } } ?> <div id="form-client-list" class="wpcargo-field-section"> <h1>Additional Information</h1> <table class="wpcargo form-table"> <tbody><tr> <th><label>Customer Name</label></th> <td> <select name="customer_fields" class="mdb-select mt-0 form-control browser-default" id="customer_fields" required=""> <option value=""><?php _e('-- Select Customer --','wpcargo-frontend-manager'); ?></option> <?php if( !empty( $users ) ): ?> <?php foreach( $users as $key => $value ): ?> <option value="<?php echo $key; ?>" <?php selected( $customer, $key ); ?>><?php echo $value; ?></option> <?php endforeach; ?> <?php endif; ?> </select> </td> </tr> </table> </div> <?php }

This adds the dynamic field at the bottom of the custom section
add_action( 'wpcargo_after_shipment_meta_section', 'custom_shipment_info_additional_field' ); function custom_shipment_info_additional_field( $shipment_id ){ global $wpcargo; if( !$shipment_id ){ $shipment_id = 0; } $customer = get_post_meta( $shipment_id, 'customer_fields', true ); $args = array( 'role__in' => array('wpcargo_client'), 'orderby' => 'display_name', 'order' => 'ASC' ); $users = array(); if( !empty( get_users( $args ) ) ){ foreach ( get_users( $args ) as $user ) { $users[$user->ID] = $wpcargo->user_fullname( $user->ID ); } } ?> <div id="form-client-list" class="wpcargo-field-section"> <h1>Additional Information</h1> <table class="wpcargo form-table"> <tbody><tr> <th><label>Customer Name</label></th> <td> <select name="customer_fields" class="mdb-select mt-0 form-control browser-default" id="customer_fields" required=""> <option value=""><?php _e('-- Select Customer --','wpcargo-frontend-manager'); ?></option> <?php if( !empty( $users ) ): ?> <?php foreach( $users as $key => $value ): ?> <option value="<?php echo $key; ?>" <?php selected( $customer, $key ); ?>><?php echo $value; ?></option> <?php endforeach; ?> <?php endif; ?> </select> </td> </tr> </table> </div> <?php }

Following code works as saving of the data of your custom field
add_action( 'save_post', 'save_custom_shipment_info_additional_field' ); function save_custom_shipment_info_additional_field( $shipment_id ){ update_post_meta( $shipment_id, 'customer_fields', $_POST['customer_fields'] ); }