function display($tmpl = null, $separator = false) { global $_js_helper; switch ($this->snap_task) { case 'save': $jobssnap_data = $_POST; $jobssnap_id = JS_Helper::get_input('id'); $author = $jobssnap_data['author']; $title = $jobssnap_data['title']; $snap_tag = $jobssnap_data['snap_tag']; $content = $jobssnap_data['description']; unset($jobssnap_data['author']); unset($jobssnap_data['title']); unset($jobssnap_data['snap_tag']); unset($jobssnap_data['description']); unset($jobssnap_data['terms']); $args = array('ID' => $jobssnap_id, 'post_title' => $title, 'post_content' => $content, 'author' => $author, 'tax_input' => array('snap_tag' => $snap_tag)); wp_update_post($args); foreach ($jobssnap_data as $meta_key => $meta_value) { if ($meta_key == 'date') { $meta_value = date('n/j/Y', strtotime($meta_value)); } update_post_meta($jobssnap_id, $meta_key, $meta_value); } $hours_diff = JS_Helper::calc_total_hours($jobssnap_data['time_from'], $jobssnap_data['time_to']); update_post_meta($jobssnap_id, 'total_hour', $hours_diff); wp_redirect($_js_helper->getHomeUrl('my-jobssnaps')); exit; break; case 'edit': $this->item = $this->prepareItem(get_post(JS_Helper::get_input('id'))); break; case 'add': $current_user = JS_User::getUser(get_current_user_id()); $current_slot = $current_user->slots; $jobssnap_data = $_POST; if (empty($jobssnap_data)) { break; } $author = $jobssnap_data['author']; $title = $jobssnap_data['title']; $snap_tag = $jobssnap_data['snap_tag']; $content = $jobssnap_data['description']; unset($jobssnap_data['author']); unset($jobssnap_data['title']); unset($jobssnap_data['snap_tag']); unset($jobssnap_data['description']); unset($jobssnap_data['terms']); $args = array('post_title' => $title, 'post_type' => 'jobssnap', 'post_content' => $content, 'author' => $author, 'tax_input' => array('snap_tag' => $snap_tag), 'post_status' => 'publish'); $jobssnap = wp_insert_post($args, true); if (!is_wp_error($jobssnap)) { foreach ($jobssnap_data as $meta_key => $meta_value) { if ($meta_key == 'date') { $meta_value = date('n/j/Y', strtotime($meta_value)); } update_post_meta($jobssnap, $meta_key, $meta_value); } update_post_meta($jobssnap, 'snap_job_status', 'opened'); $hours_diff = JS_Helper::calc_total_hours($jobssnap_data['time_from'], $jobssnap_data['time_to']); update_post_meta($jobssnap, 'total_hour', $hours_diff); $slot = intval($current_slot) - 1; update_user_meta($author, 'snap_package_post_jobs_slot', $slot); wp_redirect($_js_helper->getHomeUrl('my-jobssnaps')); exit; } break; } parent::display($tmpl, $separator); }
function display($tmpl = null, $separator = false) { global $wp, $_js_helper; $snap_task = JS_Helper::get_input('snap_task') ? JS_Helper::get_input('snap_task') : null; unset($_POST['snap_task']); if (JS_Helper::get_input('view') == 'list') { $tmpl = 'timesnaps.viewlisting'; $snap_task = 'list'; } switch ($snap_task) { case 'add': $timesnap_data = $_POST; if (empty($timesnap_data)) { $this->dates = $_REQUEST['dates']; break; } if (isset($timesnap_data['snap_category_new'])) { $timesnap_data['snap_category'] = $timesnap_data['snap_category_new']; } $author = $timesnap_data['author']; $snap_category = $timesnap_data['snap_category']; $snap_tag = $timesnap_data['snap_tag']; unset($timesnap_data['author']); unset($timesnap_data['snap_tag']); unset($timesnap_data['terms']); $args = array('post_type' => 'timesnap', 'author' => $author, 'tax_input' => array('snap_category' => array($snap_category), 'snap_tag' => $snap_tag), 'post_status' => 'publish'); $dates = explode(',', $timesnap_data['dates']); unset($timesnap_data['dates']); $success = 0; foreach ($dates as $date) { $selected_day = date_create_from_format('m/d/Y', $date); if (!$selected_day) { continue; } $post_title = date_format($selected_day, 'd . F . Y (l)'); $args['post_title'] = $post_title; $timesnap_data['date'] = $date; $timesnap = wp_insert_post($args, true); if (!is_wp_error($timesnap)) { foreach ($timesnap_data as $meta_key => $meta_value) { update_post_meta($timesnap, $meta_key, $meta_value); } $hours_diff = JS_Helper::calc_total_hours($timesnap_data['time_from'], $timesnap_data['time_to']); update_post_meta($timesnap, 'total_hour', $hours_diff); $success++; } } if ($success) { wp_redirect($_js_helper->getHomeUrl('my-timesnaps')); exit; } break; case 'item': case 'edit': $timesnap_id = $_GET['id'] ? $_GET['id'] : JS_Helper::get_input('id'); $this->item = $this->prepareItem(get_post($timesnap_id)); $this->dates = $this->item->date; $timesnap_data = $_POST; if (empty($timesnap_data)) { break; } if (isset($timesnap_data['snap_category_new'])) { $timesnap_data['snap_category'] = $timesnap_data['snap_category_new']; } $args = array('ID' => $timesnap_id, 'tax_input' => array('snap_category' => $timesnap_data['snap_category'], 'snap_tag' => $timesnap_data['snap_tag'])); $timesnap = wp_update_post($args, true); unset($timesnap_data['author']); unset($timesnap_data['snap_tag']); unset($timesnap_data['terms']); $dates = explode(',', $timesnap_data['dates']); $timesnap_data['date'] = $dates[0]; unset($timesnap_data['dates']); if (!is_wp_error($timesnap)) { foreach ($timesnap_data as $meta_key => $meta_value) { update_post_meta($timesnap, $meta_key, $meta_value); } $hours_diff = JS_Helper::calc_total_hours($timesnap_data['time_from'], $timesnap_data['time_to']); update_post_meta($timesnap, 'total_hour', $hours_diff); wp_redirect($_js_helper->getHomeUrl('my-timesnaps')); exit; } break; case 'list': $timesnaps = $this->getData(); $this->prepareItems($timesnaps); break; case 'calendar': $timesnaps = array(); for ($i = 1; $i <= date('t'); $i++) { $date = date('n/j/Y', mktime(0, 0, 0, date('n'), $i, date('Y'))); $timesnaps[$date] = $this->prepareItems($this->getDataByDate($date)); } $this->items = json_encode($timesnaps); break; case 'form': break; } parent::display($tmpl, $separator); }