Пример #1
0
 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;
 }