function signup()
 {
     require_once WPPR_PLUGIN_DIR . '/models/signup-model.php';
     $model = new Signup_Model();
     $username = sanitize_user($this->username);
     $email = sanitize_email($this->email);
     $password = $this->password;
     $activation_key = generate_key($email);
     $userdata = array($username, $email, wp_hash_password($password), $activation_key, CUR_DATE, REMOTE_IP);
     if (is_wp_error($this->validate_signup())) {
         $attributes['errors'] = $this->validate_signup()->get_error_message();
     } else {
         $result = $model->insert_signup($userdata);
         if (!is_wp_error($result)) {
             $attributes['success'] = 'Please check your email for confirmation';
             //send email confirmation to user
             $this->send_activation_link($username, $email, $password, $activation_key);
         } else {
             $attributes['errors'] = 'Something went wrong. Please try again later';
         }
     }
     return $attributes;
 }