private function add_new_user($post)
 {
     $new_user_id = wp_insert_user(array('user_login' => $post['username'], 'user_pass' => $post['password'], 'user_email' => $post['email'], 'first_name' => $post['first_name'], 'last_name' => $post['last_name'], 'user_url' => $post['website'], 'description' => $post['description'], 'user_registered' => date('Y-m-d H:i:s'), 'role' => $post['role']));
     if (!is_wp_error($new_user_id)) {
         global $wpdb;
         add_user_meta($new_user_id, 'company_name', $post['company_name']) or update_user_meta($new_user_id, 'company_name', $post['company_name']);
         add_user_meta($new_user_id, 'mobile', $post['mobile']) or update_user_meta($new_user_id, 'mobile', $post['mobile']);
         add_user_meta($new_user_id, 'phone', $post['phone']) or update_user_meta($new_user_id, 'phone', $post['phone']);
         $city = $_POST['city'];
         $group = $_POST['group'];
         $category = $_POST['category'];
         $company_name = $_POST['company_name'];
         $group_slug = sanitize_title($group);
         $category_slug = sanitize_title($category);
         $other_categories = (array) (!empty($_POST['categories']) ? $_POST['categories'] : array());
         $company_id = $wpdb->get_var("SELECT ID FROM wp_posts WHERE post_title = '" . $company_name . "'");
         if (!empty($company_name) && !$company_id) {
             $company_id = wp_insert_post(array('post_title' => $company_name, 'post_author' => $new_user_id, 'post_type' => sanitize_title($post['role']), 'post_status' => 'publish'));
             update_user_meta($new_user_id, 'company', $company_id);
         }
         $tax = $post['role'] == 'vendor' ? $city : 'venue-category';
         // Remove existing post and term relationships
         $old_tax = get_post_meta($company_id, $tax, true);
         wp_delete_object_term_relationships($company_id, $old_tax);
         if (count($other_categories) > 0) {
             $terms = array();
             foreach ($other_categories as $term_title) {
                 if (empty($term_title)) {
                     continue;
                 }
                 $term_slug = sanitize_title($term_title);
                 if (!($term = term_exists($term_title, $tax))) {
                     $term = wp_insert_term($term_title, $tax, array('slug' => $term_slug));
                 }
                 if (!is_wp_error($term)) {
                     $terms[] = $term['term_id'];
                 }
             }
             wp_set_post_terms($company_id, $terms, $tax, false);
         }
         // Update custom permalink
         update_post_meta($company_id, 'custom_permalink', $city . '/' . $group_slug . '/' . $category_slug . '/' . sanitize_title($company_name));
         // Update Post Meta
         update_post_meta($company_id, 'vendor', $new_user_id);
         update_post_meta($company_id, 'region', $group_slug);
         update_post_meta($company_id, 'city', $city);
         if ($post['role'] == 'vendor') {
             update_post_meta($company_id, 'category', $category_slug);
         } else {
             update_post_meta($company_id, 'main_category', $category_slug);
         }
         // Update user meta
         update_user_meta($new_user_id, 'city', $city);
         update_user_meta($new_user_id, 'group', $group_slug);
         update_user_meta($new_user_id, 'category', $category_slug);
         // Update registration code to inactive
         WEPN_Admin_Settings::set_used_reg_code($post['registration_code']);
         // Logged In user once registered
         wp_set_current_user($new_user_id, $post['username']);
         wp_set_auth_cookie($new_user_id);
         do_action('wp_login', $post['username']);
         exit(wp_redirect(home_url('/wp-admin/profile.php')));
     } else {
         WEPN_Notify::add($new_user_id->errors, 'error');
     }
 }
 private function min($key, $min)
 {
     $val = $this->input[$key];
     if (strlen($val) < $min) {
         WEPN_Notify::add(ucfirst(str_replace('_', ' ', $key)) . ' minimum length is ' . $min, 'error');
     }
 }