/** * Sorts the meta to ensure we are getting the real start date * @deprecated since 3.4 * @param int $postId * @return string */ public static function getRealStartDate($postId) { return TribeEvents::get_series_start_date($postId); }
/** * Placed here for compatibility reasons. This can be removed * when Events Calendar 3.2 or greater is released * * @todo Remove this method * * @param int $post_id * * @return string * @see TribeEvents::get_series_start_date() */ private static function get_series_start_date($post_id) { if (method_exists('TribeEvents', 'get_series_start_date')) { return TribeEvents::get_series_start_date($post_id); } $start_dates = tribe_get_recurrence_start_dates($post_id); return reset($start_dates); }
/** * Placed here for compatibility reasons. This can be removed * when Events Calendar 3.2 or greater is released * * @todo Remove this method * @param int $post_id * @return string * @see TribeEvents::get_series_start_date() */ private static function get_series_start_date($post_id) { if (method_exists('TribeEvents', 'get_series_start_date')) { return TribeEvents::get_series_start_date($post_id); } $start_dates = get_post_meta($post_id, '_EventStartDate', false); if ($start_dates) { return min($start_dates); } return ''; }
/** * Used by createEvent and updateEvent - saves all the various event meta * * @param int $event_id The event ID we are modifying meta for. * @param array $data The meta fields we want saved. * @param WP_Post The event itself. * @return void */ public static function saveEventMeta($event_id, $data, $event = null) { $tribe_ecp = TribeEvents::instance(); if (isset($data['EventAllDay']) && ($data['EventAllDay'] == 'yes' || $data['EventAllDay'] == true || !isset($data['EventStartDate']))) { $data['EventStartDate'] = TribeDateUtils::beginningOfDay($data['EventStartDate']); $data['EventEndDate'] = TribeDateUtils::endOfDay($data['EventEndDate']); } else { delete_post_meta($event_id, '_EventAllDay'); if (isset($data['EventStartMeridian'])) { $data['EventStartDate'] = date(TribeDateUtils::DBDATETIMEFORMAT, strtotime($data['EventStartDate'] . " " . $data['EventStartHour'] . ":" . $data['EventStartMinute'] . ":00 " . $data['EventStartMeridian'])); $data['EventEndDate'] = date(TribeDateUtils::DBDATETIMEFORMAT, strtotime($data['EventEndDate'] . " " . $data['EventEndHour'] . ":" . $data['EventEndMinute'] . ":00 " . $data['EventEndMeridian'])); } else { $data['EventStartDate'] = date(TribeDateUtils::DBDATETIMEFORMAT, strtotime($data['EventStartDate'] . " " . $data['EventStartHour'] . ":" . $data['EventStartMinute'] . ":00")); $data['EventEndDate'] = date(TribeDateUtils::DBDATETIMEFORMAT, strtotime($data['EventEndDate'] . " " . $data['EventEndHour'] . ":" . $data['EventEndMinute'] . ":00")); } } if (!isset($data['EventHideFromUpcoming']) || !$data['EventHideFromUpcoming']) { delete_post_meta($event_id, '_EventHideFromUpcoming'); } // sanity check that start date < end date $startTimestamp = strtotime($data['EventStartDate']); $endTimestamp = strtotime($data['EventEndDate']); if ($startTimestamp > $endTimestamp) { $data['EventEndDate'] = $data['EventStartDate']; } $data['EventDuration'] = strtotime($data['EventEndDate']) - $startTimestamp; $old_data['EventStartDate'] = TribeEvents::get_series_start_date($event_id); update_post_meta($event_id, '_EventShowMapLink', isset($data['venue']['EventShowMapLink'])); update_post_meta($event_id, '_EventShowMap', isset($data['venue']['EventShowMap'])); if (isset($data['post_status'])) { $post_status = $data['post_status']; } else { //print_r($data); if (isset($data["Organizer"]["OrganizerID"])) { $post_status = get_post($data["Organizer"]['OrganizerID'])->post_status; } if (isset($data['Venue']["VenueID"])) { $post_status = get_post($data['Venue']['VenueID'])->post_status; } } if (isset($data["Organizer"])) { $data['EventOrganizerID'] = TribeEventsAPI::saveEventOrganizer($data["Organizer"], $event, $post_status); } if (isset($data["Venue"])) { $data['EventVenueID'] = TribeEventsAPI::saveEventVenue($data["Venue"], $event, $post_status); } $cost = isset($data['EventCost']) ? $data['EventCost'] : ''; $data['EventCost'] = $cost; do_action('tribe_events_event_save', $event_id); $cost = isset($data['EventCost']) ? $data['EventCost'] : ''; $data['EventCost'] = $cost; //update meta fields foreach ($tribe_ecp->metaTags as $tag) { $htmlElement = ltrim($tag, '_'); if (isset($data[$htmlElement]) && $tag != TribeEvents::EVENTSERROROPT) { if (is_string($data[$htmlElement])) { $data[$htmlElement] = filter_var($data[$htmlElement], FILTER_SANITIZE_STRING); } if (isset($old_data[$htmlElement])) { update_post_meta($event_id, $tag, $data[$htmlElement], $old_data[$htmlElement]); } else { update_post_meta($event_id, $tag, $data[$htmlElement]); } } } // Set sticky state for calendar view. if (isset($data['EventShowInCalendar']) && $data['EventShowInCalendar'] == 'yes' && $event->menu_order != '-1') { $update_event = array('ID' => $event_id, 'menu_order' => '-1'); wp_update_post($update_event); } elseif ((!isset($data['EventShowInCalendar']) || $data['EventShowInCalendar'] != 'yes') && $event->menu_order == '-1') { $update_event = array('ID' => $event_id, 'menu_order' => '0'); wp_update_post($update_event); } do_action('tribe_events_update_meta', $event_id, $data); }
/** * Delete view for an event. * * @param int $tribe_event_id The event's ID. * @return string The deletion view. * @author Nick Ciske * @since 1.0 */ public function doDelete($tribe_event_id) { $this->default_template_compatibility(); if (isset($_GET['eventDate'])) { $eventDate = date('Y-m-d', strtotime($_GET['eventDate'])); } if (isset($_GET['deleteAll'])) { $deleteAll = true; } $current_user = wp_get_current_user(); if (wp_verify_nonce($_GET['_wpnonce'], 'tribe_community_events_delete') && current_user_can('delete_post', $tribe_event_id)) { //does this event even exist? $event = get_post($tribe_event_id); if (isset($event->ID)) { if (isset($deleteAll) && $deleteAll || !isset($eventDate)) { if ($this->trashItemsVsDelete) { wp_trash_post($tribe_event_id); $this->enqueueOutputMessage(__('Trashed Event #', 'tribe-events-community') . $tribe_event_id); } else { wp_delete_post($tribe_event_id, true); $this->enqueueOutputMessage(__('Deleted Event #', 'tribe-events-community') . $tribe_event_id); } } else { $date = $eventDate; $startDate = TribeEvents::get_series_start_date($tribe_event_id); $date = TribeDateUtils::addTimeToDate($date, TribeDateUtils::timeOnly($startDate)); delete_post_meta($tribe_event_id, '_EventStartDate', $date); $this->enqueueOutputMessage(sprintf(__('Removed occurence %s from Event #', 'tribe-events-community') . $tribe_event_id, $eventDate)); } } else { $this->enqueueOutputMessage(sprintf(__('This event (#%s) does not appear to exist.', 'tribe-events-community'), $tribe_event_id)); } } else { $this->enqueueOutputMessage(__('You do not have permission to delete this event.', 'tribe-events-community')); } $output = '<div id="tribe-community-events" class="delete">'; ob_start(); $this->addScriptsAndStyles(); include TribeEventsTemplates::getTemplateHierarchy('community/modules/delete'); $output .= ob_get_clean(); $output .= '<a href="javascript:history.go(-1);">« ' . _x('Back', 'As in "go back to previous page"', 'tribe-events-community') . '</a>'; $output .= '</div>'; return $output; }