function jobman_register() { global $jobman_register_failed, $wp_query; require_once ABSPATH . WPINC . '/registration.php'; $vars = array('jobman_username', 'jobman_password', 'jobman_password2', 'jobman_email'); foreach ($vars as $var) { if (!array_key_exists($var, $wp_query->query_vars)) { $jobman_register_failed = 4; return; } } if ($wp_query->query_vars['jobman_password'] != $wp_query->query_vars['jobman_password2']) { $jobman_register_failed = 2; return; } if (username_exists($wp_query->query_vars['jobman_username'])) { $jobman_register_failed = 1; return; } if (email_exists($wp_query->query_vars['jobman_email'])) { $jobman_register_failed = 3; return; } $userid = wp_create_user($wp_query->query_vars['jobman_username'], $wp_query->query_vars['jobman_password'], $wp_query->query_vars['jobman_email']); update_usermeta($userid, 'jobman', 1); jobman_login(); }
function jobman_display_jobs($posts) { global $wp_query, $wpdb, $jobman_displaying, $jobman_finishedpage, $sitepress, $wp_rewrite; if ($jobman_finishedpage || $jobman_displaying) { return $posts; } // Hack to fix Mystique theme CSS if (array_key_exists('mystique', $wp_query->query_vars) && 'css' == $wp_query->query_vars['mystique']) { return $posts; } $options = get_option('jobman_options'); $post = NULL; $displaycat = false; if (array_key_exists('jobman_data', $wp_query->query_vars) && !array_key_exists('jobman_page', $wp_query->query_vars)) { if (term_exists($wp_query->query_vars['jobman_data'], 'jobman_category')) { $wp_query->query_vars['jcat'] = $wp_query->query_vars['jobman_data']; } else { $sql = "SELECT * FROM {$wpdb->posts} WHERE post_type='jobman_job' AND post_name=%s;"; $sql = $wpdb->prepare($sql, $wp_query->query_vars['jobman_data']); $data = $wpdb->get_results($sql, OBJECT); if (count($data) > 0) { $wp_query->query_vars['page_id'] = $data[0]->ID; } else { return $posts; } } } if (!array_key_exists('jcat', $wp_query->query_vars)) { if (isset($wp_query->query_vars['jobman_root_id'])) { $post = get_post($wp_query->query_vars['jobman_root_id']); } else { if (isset($wp_query->query_vars['page_id'])) { $post = get_post($wp_query->query_vars['page_id']); } } if ($post == NULL || !isset($wp_query->query_vars['jobman_page']) && $post->ID != $options['main_page'] && !in_array($post->post_type, array('jobman_job', 'jobman_app_form', 'jobman_register'))) { return $posts; } } // We're going to be displaying a Job Manager page. $jobman_displaying = true; $wp_query->is_home = false; remove_filter('the_content', 'wpautop'); // Hack to kill WPML on Job Manager pages. Need to add proper support later. if (defined('ICL_SITEPRESS_VERSION') && !empty($sitepress)) { remove_filter('posts_join', array($sitepress, 'posts_join_filter')); remove_filter('posts_where', array($sitepress, 'posts_where_filter')); } if (NULL != $post) { $postmeta = get_post_custom($post->ID); $postcats = wp_get_object_terms($post->ID, 'jobman_category'); $postdata = array(); foreach ($postmeta as $key => $value) { if (is_array($value)) { $postdata[$key] = $value[0]; } else { $postdata[$key] = $value; } } } if (array_key_exists('jobman_register', $wp_query->query_vars)) { jobman_register(); } else { if (array_key_exists('jobman_username', $wp_query->query_vars)) { jobman_login(); } } global $jobman_data; $jobman_data = ''; if (array_key_exists('jobman_data', $wp_query->query_vars)) { $jobman_data = $wp_query->query_vars['jobman_data']; } else { if (array_key_exists('j', $wp_query->query_vars)) { $jobman_data = $wp_query->query_vars['j']; } else { if (array_key_exists('c', $wp_query->query_vars)) { $jobman_data = $wp_query->query_vars['c']; } } } if (array_key_exists('jcat', $wp_query->query_vars)) { // We're looking at a category $cat = get_term_by('slug', $wp_query->query_vars['jcat'], 'jobman_category'); $posts = jobman_display_jobs_list($cat->term_id); if (count($posts) > 0) { $posts[0]->post_content = $options['text']['category_before'] . $posts[0]->post_content . $options['text']['category_after']; } } else { if (isset($wp_query->query_vars['jobman_page']) || NULL != $post && in_array($post->post_type, array('jobman_job', 'jobman_app_form', 'jobman_register'))) { if (NULL == $post || !in_array($post->post_type, array('jobman_job', 'jobman_app_form', 'jobman_register'))) { $sql = "SELECT * FROM {$wpdb->posts} WHERE (post_type='jobman_job' OR post_type='jobman_app_form' OR post_type='jobman_register') AND post_name=%s;"; $sql = $wpdb->prepare($sql, $wp_query->query_vars['jobman_page']); $data = $wpdb->get_results($sql, OBJECT); } else { $data = array($post); } if (count($data) > 0) { $post = $data[0]; $postmeta = get_post_custom($post->ID); $postcats = wp_get_object_terms($post->ID, 'jobman_category'); $postdata = array(); foreach ($postmeta as $key => $value) { if (is_array($value)) { $postdata[$key] = $value[0]; } else { $postdata[$key] = $value; } } if ('jobman_job' == $post->post_type) { // We're looking at a job $posts = jobman_display_job($post->ID); if (count($posts) > 0) { $posts[0]->post_content = $options['text']['job_before'] . $posts[0]->post_content . $options['text']['job_after']; } } else { if ('jobman_app_form' == $post->post_type) { // We're looking at an application form $jobid = (int) $jobman_data; if ('' == $jobman_data) { $posts = jobman_display_apply(-1); } else { if ($jobid > 0) { $posts = jobman_display_apply($jobid); } else { $posts = jobman_display_apply(-1, $jobman_data); } } if (count($posts) > 0) { $posts[0]->post_content = $options['text']['apply_before'] . $posts[0]->post_content . $options['text']['apply_after']; } } else { if ('jobman_register' == $post->post_type) { // Looking for the registration form if (is_user_logged_in()) { wp_redirect(get_page_link($options['main_page'])); exit; } else { $posts = jobman_display_register(); if (count($posts) > 0) { $posts[0]->post_content = $options['text']['registration_before'] . $posts[0]->post_content . $options['text']['registration_after']; } } } else { $posts = array(); } } } } else { $posts = array(); } } else { if (NULL != $post && $post->ID == $options['main_page']) { // We're looking at the main job list page $posts = jobman_display_jobs_list('all'); if (count($posts) > 0) { $posts[0]->post_content = $options['text']['main_before'] . $posts[0]->post_content . $options['text']['main_after']; } } else { $posts = array(); } } } if (!empty($posts)) { $wp_query->queried_object = $posts[0]; $wp_query->queried_object_id = $posts[0]->ID; $wp_query->is_page = true; $wp_query->is_singular = true; } $hidepromo = $options['promo_link']; if (get_option('smb_consulting')) { $hidepromo = true; } if (!$hidepromo && count($posts) > 0) { $posts[0]->post_content .= '<p class="jobmanpromo">' . sprintf(__('This job listing was created using <a href="%s" title="%s">Job Manager</a> for WordPress, by <a href="%s">Tom Townsend</a>.', 'jobman'), 'http://www.wp-jobmanager.com/', __('The ORIGINAL Job Manager plugin', 'jobman'), 'https://profiles.wordpress.org/smb-dev/') . '</p>'; } $jobman_finishedpage = true; return $posts; }