| @@ -63,11 +63,17 @@ | ||
| 63 | 63 | if ( ! $service ) { |
| 64 | 64 | $error->add( 'invalid_service', __( 'Invalid service selected', 'booktics' ) ); |
| 65 | 65 | } |
| 66 | 66 | |
| 67 | - $team_member = ( new Team_Member_Model() )->find( $item['team_member_id'] ); | |
| 68 | - if ( ! $team_member ) { | |
| 69 | - $error->add( 'invalid_team_member', __( 'Invalid team member selected', 'booktics' ) ); | |
| 67 | + // An item may legitimately arrive without a team member when the | |
| 68 | + // service assigns one server-side. The item validation rules decide | |
| 69 | + // whether that is allowed; this check only verifies a member that was | |
| 70 | + // actually supplied. | |
| 71 | + if ( ! empty( $item['team_member_id'] ) ) { | |
| 72 | + $team_member = ( new Team_Member_Model() )->find( $item['team_member_id'] ); | |
| 73 | + if ( ! $team_member ) { | |
| 74 | + $error->add( 'invalid_team_member', __( 'Invalid team member selected', 'booktics' ) ); | |
| 75 | + } | |
| 70 | 76 | } |
| 71 | 77 | $error = apply_filters( 'booktics_extra_service_validate', $error, $item ); |
| 72 | 78 | |
| 73 | 79 | return $error->has_errors() ? $error : true; |