| @@ -66,19 +66,23 @@ | ||
| 66 | 66 | * |
| 67 | 67 | * @return array |
| 68 | 68 | */ |
| 69 | 69 | public function check( $user_answer = null ) { |
| 70 | - $return = parent::check(); | |
| 71 | - $answers = $this->get_answers(); | |
| 72 | - | |
| 73 | - if ( $answers ) { | |
| 74 | - foreach ( $answers as $key => $option ) { | |
| 75 | - if ( ( $option['is_true'] == 'yes' ) && ( $option['value'] == $user_answer ) ) { | |
| 76 | - $return['correct'] = true; | |
| 77 | - $return['mark'] = floatval( $this->get_mark() ); | |
| 78 | - break; | |
| 70 | + $return = parent::check(); | |
| 71 | + try { | |
| 72 | + $answers = $this->get_answers(); | |
| 73 | + if ( $answers ) { | |
| 74 | + foreach ( $answers as $key => $option ) { | |
| 75 | + $data = $option->get_data(); | |
| 76 | + if ( $data['is_true'] == 'yes' && $data['value'] == $user_answer ) { | |
| 77 | + $return['correct'] = true; | |
| 78 | + $return['mark'] = floatval( $this->get_mark() ); | |
| 79 | + break; | |
| 80 | + } | |
| 79 | 81 | } |
| 80 | 82 | } |
| 83 | + } catch ( Throwable $e ) { | |
| 84 | + error_log( __METHOD__ . ': ' . $e->getMessage() ); | |
| 81 | 85 | } |
| 82 | 86 | |
| 83 | 87 | return $return; |
| 84 | 88 | } |