id = 'config'; $this->label = __( 'Configure', 'sportspress' ); add_filter( 'sportspress_settings_tabs_array', array( $this, 'add_settings_page' ), 20 ); add_action( 'sportspress_settings_' . $this->id, array( $this, 'output' ) ); add_action( 'sportspress_admin_field_results', array( $this, 'results_setting' ) ); add_action( 'sportspress_admin_field_outcomes', array( $this, 'outcomes_setting' ) ); add_action( 'sportspress_admin_field_columns', array( $this, 'columns_setting' ) ); add_action( 'sportspress_admin_field_metrics', array( $this, 'metrics_setting' ) ); add_action( 'sportspress_admin_field_performance', array( $this, 'performance_setting' ) ); add_action( 'sportspress_settings_save_' . $this->id, array( $this, 'save' ) ); } /** * Get settings array * * @return array */ public function get_settings() { return apply_filters('sportspress_event_settings', array( array( 'title' => __( 'Configure SportsPress', 'sportspress' ), 'type' => 'title','desc' => '', 'id' => 'config_options' ), array( 'title' => __( 'Sport', 'sportspress' ), 'id' => 'sportspress_sport', 'default' => 'soccer', 'type' => 'select', 'options' => SP()->sports->options, ), array( 'type' => 'results' ), array( 'type' => 'outcomes' ), array( 'type' => 'columns' ), array( 'type' => 'metrics' ), array( 'type' => 'performance' ), array( 'type' => 'statistics' ), array( 'type' => 'sectionend', 'id' => 'config_options' ), )); // End event settings } /** * Save settings */ public function save() { $settings = $this->get_settings(); SP_Admin_Settings::save_fields( $settings ); if ( isset( $_POST['sportspress_primary_result'] ) ) update_option( 'sportspress_primary_result', $_POST['sportspress_primary_result'] ); if ( isset( $_POST['sportspress_sport'] ) && ! empty( $_POST['sportspress_sport'] ) && get_option( 'sportspress_sport', null ) != $_POST['sportspress_sport'] ): $sport = SP()->sports->$_POST['sportspress_sport']; // Get array of taxonomies to insert $term_groups = sp_array_value( $sport, 'term', array() ); foreach( $term_groups as $taxonomy => $terms ): // Find empty terms and destroy $allterms = get_terms( $taxonomy, 'hide_empty=0' ); foreach( $allterms as $term ): if ( $term->count == 0 ) wp_delete_term( $term->term_id, $taxonomy ); endforeach; // Insert terms foreach( $terms as $term ): wp_insert_term( $term['name'], $taxonomy, array( 'slug' => $term['slug'] ) ); endforeach; endforeach; // Get array of post types to insert $post_groups = sp_array_value( $sport, 'posts', array() ); // Loop through each post type foreach( $post_groups as $post_type => $posts ): $args = array( 'post_type' => $post_type, 'numberposts' => -1, 'posts_per_page' => -1, 'meta_query' => array( array( 'key' => '_sp_preset', 'value' => 1 ) ) ); // Delete posts $old_posts = get_posts( $args ); foreach( $old_posts as $post ): wp_delete_post( $post->ID, true); endforeach; // Add posts foreach( $posts as $index => $post ): // Make sure post doesn't overlap if ( ! get_page_by_path( $post['post_name'], OBJECT, $post_type ) ): // Translate post title $post['post_title'] = __( $post['post_title'], 'sportspress' ); // Set post type $post['post_type'] = $post_type; // Increment menu order by 2 and publish post $post['menu_order'] = $index * 2 + 2; $post['post_status'] = 'publish'; $id = wp_insert_post( $post ); // Flag as preset update_post_meta( $id, '_sp_preset', 1 ); // Update meta if ( array_key_exists( 'meta', $post ) ): foreach ( $post['meta'] as $key => $value ): update_post_meta( $id, $key, $value ); endforeach; endif; // Update terms if ( array_key_exists( 'tax_input', $post ) ): foreach ( $post['tax_input'] as $taxonomy => $terms ): wp_set_object_terms( $id, $terms, $taxonomy, false ); endforeach; endif; endif; endforeach; endforeach; endif; } /** * Results settings * * @access public * @return void */ public function results_setting() { $selection = get_option( 'sportspress_primary_result', 0 ); $args = array( 'post_type' => 'sp_result', 'numberposts' => -1, 'posts_per_page' => -1, 'orderby' => 'menu_order', 'order' => 'ASC' ); $data = get_posts( $args ); ?>
>
>
post_name ); ?>> post_name; ?>for / post_name; ?>against

'sp_outcome', 'numberposts' => -1, 'posts_per_page' => -1, 'orderby' => 'menu_order', 'order' => 'ASC' ); $data = get_posts( $args ); ?> >
post_title; ?> post_name; ?>

'sp_column', 'numberposts' => -1, 'posts_per_page' => -1, 'orderby' => 'menu_order', 'order' => 'ASC' ); $data = get_posts( $args ); ?> >
post_title; ?> post_name; ?> ID, $row->post_name ); ?> ID ); ?> ID ); ?>

'sp_metric', 'numberposts' => -1, 'posts_per_page' => -1, 'orderby' => 'menu_order', 'order' => 'ASC' ); $data = get_posts( $args ); ?> >
 
post_title; ?> ID, 'sp_position' ) ? the_terms( $row->ID, 'sp_position' ) : '—'; ?>  

'sp_performance', 'numberposts' => -1, 'posts_per_page' => -1, 'orderby' => 'menu_order', 'order' => 'ASC' ); $data = get_posts( $args ); ?> >
post_title; ?> ID, 'sp_position' ) ? the_terms( $row->ID, 'sp_position' ) : '—'; ?> ID ); ?>