@ealbinom
Please update your server php version or replace that entire method like
public function update_field($_pid = 0, $_payload) {
$_pid = absint( $_pid );
$res = true;
$msg = "";
$field_meta_key = "";
$field_unopen = isset( $_payload["wcff_unopen_details"] ) ? $_payload["wcff_unopen_details"] : array();
$_payload = isset( $_payload["wcff_field_metas"] ) ? $_payload["wcff_field_metas"] : array();
for( $i = 0; $i < count( $_payload ); $i++ ){
$payload = $_payload[$i];
if ( isset( $payload[ "key" ] ) && $payload[ "key" ] != "" ) {
$field_meta_key = $payload[ "key" ];
} else {
$field_meta_key = "";
}
if( $res ){
$check_not_empty = !empty( $field_meta_key ) && !empty( get_post_meta( $_pid, $field_meta_key, true ) );
if( $check_not_empty ){
$payload = apply_filters( 'wcff_before_update_field', $_payload[$i], $_pid );
delete_post_meta( $_pid, $field_meta_key );
if( add_post_meta( $_pid, $field_meta_key, wp_slash( json_encode( $payload ) ) ) == false ) {
$res = false;
$msg = "Failed to update the custom field";
}
} else {
$res = $this->save_field( $_pid, $_payload[$i] );
if( !$res ){
$msg = "Failed to create custom field";
}
}
}
}
foreach( $field_unopen as $key => $data ){
$field_meta = get_post_meta( $_pid, $key, true );
$check_empty = !empty( $field_meta );
if( $check_empty ){
$field_meta_json = json_decode( $field_meta, true );
foreach( $data as $meta_key => $meta_val ){
$field_meta_json[$meta_key] = $meta_val;
}
delete_post_meta( $_pid, $key );
if( add_post_meta( $_pid, $key, wp_slash( json_encode( $field_meta_json ) ) ) == false ) {
$res = false;
$msg = "Failed to update the custom field";
}
}
}
return array( "res" => $res, "msg" => $msg );
}