/** * @return array * Return all demographic options */ public static function getOptions() { $states = State::where('country_id', '=', 1)->get(); return ['gender' => self::$genderOptions, 'states' => $states, 'race' => self::$raceOptions, 'household_income' => self::$householdIncomeOptions, 'education' => self::$educationOptions]; }
/** * Updates and save the metadata for a user object */ public function updateMetadata(OctoberUser $user, $wordpressId) { $metadata = $this->db->table('wp_usermeta')->where('user_id', $wordpressId)->get(); // Organize the metadata for mapping to user fields $data = ['phone' => '', 'street_address' => '', 'city' => '', 'state' => '', 'zip' => '', 'first_name' => '', 'last_name' => '', '_badgeos_points' => '', 'email_optin' => false, 'current_member' => false, 'current_member_number' => '']; foreach ($metadata as $mdata) { $data[$mdata->meta_key] = $mdata->meta_value; } $user->phone = $data['phone']; $user->street_addr = $data['street_address']; $user->city = $data['city']; $user->zip = $data['zip']; $user->points = $data['_badgeos_points']; // Ensures that we have a barcode id for the user if (empty($user->barcode_id)) { $user->barcode_id = $user->name; } // Populate state and country objects if (!empty($data['state'])) { $state = State::where('code', strtoupper($data['state']))->first(); if (!$state) { $state = State::where('name', $data['state'])->first(); } if ($state) { $user->state()->associate($state); $user->country()->associate(Country::find($state->country_id)); } } $metadata = new Usermeta(); $metadata->first_name = $data['first_name']; $metadata->last_name = $data['last_name']; $metadata->email_optin = $data['email_optin']; $metadata->current_member = $data['current_member']; $metadata->current_member_number = $data['current_member_number']; try { $user->forceSave(); $user->metadata()->delete(); $user->metadata()->save($metadata); } catch (Exception $e) { var_dump($e); } }