errors)) { return ($convert_to_string) ? null : array(); } $resp = array(); // Error messages $messages = $this->get_messages(); foreach ($this->errors as $e) { $field = ucwords(str_replace($this->fieldCharsToRemove, chr(32), $e['field'])); $param = $e['param']; // Let's fetch explicitly if the field names exist if (array_key_exists($e['field'], self::$fields)) { $field = self::$fields[$e['field']]; // If param is a field (i.e. equalsfield validator) if (array_key_exists($param, self::$fields)) { $param = self::$fields[$e['param']]; } } // Messages if (isset($messages[$e['rule']])) { if (is_array($param)) { $param = implode(', ', $param); } $message = str_replace('{param}', $param, str_replace('{field}', $field, $messages[$e['rule']])); if(!array_key_exists($e['field'], $resp)){ $resp[$e['field']] = [ 'rule' => str_replace('validate_', '', $e['rule']), 'message' => $message ]; } } else { throw new \Exception ('Rule "'.$e['rule'].'" does not have an error message'); } } if (!$convert_to_string) { return $resp; } else { $buffer = ''; foreach ($resp as $s) { $buffer .= "$s"; } return $buffer; } } /** * Get error messages. * * @return array */ protected function get_messages() { // $lang_file = __DIR__.DIRECTORY_SEPARATOR.'lang'.DIRECTORY_SEPARATOR.$this->lang.'.php'; // wp_die($this->lang); $messages = get_option('wp_age_gate_validation_messages', array()); $advanced = get_option('wp_age_gate_advanced', array()); $post = $this->sanitize($_REQUEST); if(isset($post['lang']) && isset($messages['lang'][$post['lang']])){ if($advanced['use_default_lang']){ foreach ($messages['lang'][$post['lang']] as $key => $value) { if(empty($value)){ $messages['lang'][$post['lang']][$key] = $messages[$key]; } } } $messages = $messages['lang'][$post['lang']]; unset($messages['lang']); } if(isset($post['lang']) && file_exists(AGE_GATE_PATH . 'vendor'.DIRECTORY_SEPARATOR.'wixel'.DIRECTORY_SEPARATOR.'gump'. DIRECTORY_SEPARATOR .'lang' . DIRECTORY_SEPARATOR . $post['lang'] . '.php')){ $validation_methods_errors = include AGE_GATE_PATH . 'vendor'.DIRECTORY_SEPARATOR.'wixel'.DIRECTORY_SEPARATOR.'gump'. DIRECTORY_SEPARATOR .'lang' . DIRECTORY_SEPARATOR . $post['lang'] . '.php'; } else { $validation_methods_errors = self::$validation_methods_errors; } $messages = array_merge($validation_methods_errors, $messages); return $messages; } }