
Copy and paste this code in your functions.php file in your active theme
add_action('plugins_loaded', 'remove_wpcfe_save_shipment_history');
function remove_wpcfe_save_shipment_history(){
remove_action( 'after_wpcfe_save_shipment', 'wpcfe_save_shipment_history', 10, 2 );
}
add_action( 'after_wpcfe_save_shipment', 'after_wpcfe_save_shipment_callback', 10, 2 );
function after_wpcfe_save_shipment_callback( $post_id, $data ) {
global $wpdb, $wpcargo;
$current_user = wp_get_current_user();
$gen_settings = $wpcargo->settings;
$edit_history_role = ( array_key_exists( 'wpcargo_edit_history_role', $gen_settings ) ) ? $gen_settings['wpcargo_edit_history_role'] : array();
$role_intersected = array_intersect( $current_user->roles, $edit_history_role );
$old_status = get_post_meta($post_id, 'wpcargo_status', true);
$user_id = get_current_user_id();
$full_name = $wpcargo->user_fullname( $user_id );
if( $role_intersected ){
$history = array();
$shipments_update = array();
if( isset( $data['wpcargo_shipments_update'] ) ){
$shipments_update = $data['wpcargo_shipments_update'];
}
if( !empty( $shipments_update ) ){
foreach ($shipments_update as $h_record ) {
if( array_key_exists( 'updated-name', $h_record ) && empty($h_record['updated-name']) ){
$h_record['updated-name'] = $full_name;
}
$history[] = $h_record;
}
}
if( isset( $data['status'] ) && $data['status'] != '' ){
wpcfe_save_report( $post_id, $old_status, sanitize_text_field( $data['status'] ) );
update_post_meta( $post_id, 'wpcargo_status', sanitize_text_field( $data['status'] ) );
update_post_meta( $post_id, 'location', sanitize_text_field( $data['location'] ) );
$new_history = array();
foreach( wpcargo_history_fields() as $history_name => $history_fields ){
if( $history_name != 'updated-name' ){
$value = array_key_exists( $history_name, $data ) ? sanitize_text_field( $data[$history_name] ) : '' ;
$new_history[$history_name] = $value;
}
}
$new_history['updated-name'] = $full_name;
$history[] = $new_history;
if( $data['status'] != $old_status ){
wpcargo_send_email_notificatio( $post_id, $data['status'] );
}
}
$history = maybe_serialize( $history );
update_post_meta( $post_id, 'wpcargo_shipments_update', $history );
}else{
if( empty($old_status) ){
$data['status'] = wpcfe_default_status();
$history = get_post_meta( $post_id, 'wpcargo_shipments_update', true ) ? maybe_unserialize( get_post_meta( $post_id, 'wpcargo_shipments_update', true ) ) : array() ;
$new_history = array();
foreach( wpcargo_history_fields() as $history_name => $history_fields ){
if( $history_name != 'updated-name' ){
$value = array_key_exists( $history_name, $data ) ? sanitize_text_field( $data[$history_name] ) : '' ;
$new_history[$history_name] = $value;
}
}
/*
* Change the following value if you want
*/
$new_history['updated-name'] = $full_name;
$new_history['date'] = date("Y-m-d");
$new_history['time'] = date("h:i:sa");
$new_history['location'] = '';
$new_history['status'] = wpcfe_default_status();
$new_history['remarks'] = '';
$history[] = $new_history;
$history = maybe_serialize( $history );
update_post_meta( $post_id, 'wpcargo_shipments_update', $history );
if( $data['status'] != $old_status ){
wpcargo_send_email_notificatio( $post_id, $data['status'] );
}
}
}
}