/**
  * Save event results inline.
  *
  * @since  1.5
  */
 function save_inline_results()
 {
     check_ajax_referer('sp-save-inline-results', 'nonce');
     $id = sp_array_value($_POST, 'post_id');
     $results = sp_array_value($_POST, 'results');
     if (sp_update_main_results($id, $results)) {
         wp_send_json_success();
     } else {
         wp_send_json_error();
     }
 }
 /**
  * Save meta boxes data
  */
 public static function save($post_id)
 {
     // Format
     update_post_meta($post_id, 'sp_format', sp_array_value($_POST, 'sp_format', 'bracket'));
     // Rounds
     $limit = intval(get_option('sportspress_tournament_rounds', '6'));
     $rounds = sp_array_value($_POST, 'sp_rounds', 1);
     if ($rounds < 1) {
         $rounds = 1;
     } elseif ($rounds > $limit) {
         $rounds = $limit;
     }
     update_post_meta($post_id, 'sp_rounds', $rounds);
     // Winner
     update_post_meta($post_id, 'sp_winner', sp_array_value($_POST, 'sp_winner'));
     // Labels
     update_post_meta($post_id, 'sp_labels', sp_array_value($_POST, 'sp_labels', array()));
     // Get main result option
     $main_result = sp_get_main_result_option();
     // Get terms
     $tax_input = sp_array_value($_POST, 'tax_input', array());
     $leagues = array_map('intval', sp_array_value($tax_input, 'sp_league', array()));
     $seasons = array_map('intval', sp_array_value($tax_input, 'sp_season', array()));
     // Events
     $events = sp_array_value($_POST, 'sp_event', array());
     ksort($events);
     $event_ids = array();
     foreach ($events as $event) {
         // Get details
         $id = sp_array_value($event, 'id', 0);
         $teams = sp_array_value($event, 'teams', array());
         $results = sp_array_value($event, 'results', array());
         $date = sp_array_value($event, 'date', '');
         $h = sp_array_value($event, 'hh', '');
         $m = sp_array_value($event, 'mm', '00');
         // Update or add new event
         if (strlen($date)) {
             // Add time to date if given
             if (strlen($h)) {
                 $h = substr(str_pad($h, 2, '0', STR_PAD_LEFT), 0, 2);
                 $m = substr(str_pad($m, 2, '0', STR_PAD_LEFT), 0, 2);
                 $time = $h . ':' . $m;
                 $date .= ' ' . trim($time);
             }
             // Generate title
             $team_names = array();
             foreach ($teams as $team) {
                 if (!$team) {
                     continue;
                 }
                 $team_names[] = get_the_title($team);
             }
             $new_title = implode(' ' . get_option('sportspress_event_teams_delimiter', 'vs') . ' ', $team_names);
             // Update or add new event
             if ($id) {
                 $post = array('ID' => $id, 'post_date' => $date);
                 // Update title if not set
                 $title = get_the_title($id);
                 if (!strlen($title)) {
                     $post['post_title'] = $new_title;
                     wp_update_post($post);
                 }
             } else {
                 $args = array('post_type' => 'sp_event', 'post_title' => $new_title, 'post_status' => 'publish', 'post_date' => $date);
                 $id = wp_insert_post($args);
                 // Update league
                 if (array_filter($leagues)) {
                     wp_set_object_terms($id, $leagues, 'sp_league', false);
                 }
                 // Update season
                 if (array_filter($seasons)) {
                     wp_set_object_terms($id, $seasons, 'sp_season', false);
                 }
             }
             // Update teams
             delete_post_meta($id, 'sp_team');
             foreach ($teams as $team) {
                 add_post_meta($id, 'sp_team', $team);
             }
             // Update results
             if (sizeof($results) && sizeof($teams)) {
                 $results = array_combine($teams, $results);
                 if ($results) {
                     sp_update_main_results($id, $results);
                 }
             }
             // Update event format
             update_post_meta($id, 'sp_format', 'tournament');
         }
         // Add to event IDs
         $event_ids[] = $id;
     }
     update_post_meta($post_id, 'sp_events', $events);
     sp_update_post_meta_recursive($post_id, 'sp_event', $event_ids);
 }