public function validate_fields($fields) { $valids = array(); $errors = array(); foreach ($this->support_fields as $field_id => $field) { if (!isset($fields[$field_id])) { // The field is not set $errors[] = __('Invalid form submission', $this->plugin_slug); break; } $value = trim($fields[$field_id]); if (empty($value)) { if (empty($field['default'])) { $errors[] = sprintf(__('%s is required', $this->plugin_slug), $field['title']); } else { $valids[$field_id] = $field['default']; } } else { $valids[$field_id] = esc_sql(esc_html($value)); } } if (!empty($errors)) { // Some errors add_settings_error($this->option_name, 'rwp-support-warning', implode('<br/>', $errors), 'update-nag'); return array(); } else { // Validation ok, register plugin copy $res = $this->register_plugin($valids); if ($res['status'] === false) { // Request failed add_settings_error($this->option_name, 'rwp-support-warning', $res['body'], 'update-nag'); return array(); } else { // Request ok if ($res['body']['status']) { // Registered RWP_Notification::delete('support'); $valids['support_copy_id'] = $res['body']['resp']; add_settings_error($this->option_name, 'rwp-support-ok', __('Thank you for activating your plugin copy.', $this->plugin_slug), 'updated'); } else { // Registration failed add_settings_error($this->option_name, 'rwp-support-warning', __('Unable to register the plugin copy. Please check your Envato Username and Purchase Code fields.', $this->plugin_slug), 'update-nag'); return array(); } } } return $valids; }