diff --git wordcamp.org/public_html/wp-content/plugins/wc-post-types/views/sponsors/metabox-sponsor-info.php wordcamp.org/public_html/wp-content/plugins/wc-post-types/views/sponsors/metabox-sponsor-info.php
index 9bbd174a..e6934331 100644
--- wordcamp.org/public_html/wp-content/plugins/wc-post-types/views/sponsors/metabox-sponsor-info.php
+++ wordcamp.org/public_html/wp-content/plugins/wc-post-types/views/sponsors/metabox-sponsor-info.php
@@ -141,6 +141,27 @@
 </ul>
 
 <ul class="wcpt-form">
+	<li>
+		<label for="_wcpt_sponsor_country">
+			<?php _e( 'Country:', 'wordcamporg' ) ?>
+		</label>
+
+		<?php // todo add selected attribute to select and change first option value to empty string ?>
+		<select id="_wcpt_sponsor_country" name="_wcpt_sponsor_country">
+			<option value="null" <?php selected( $country, 'null' ); ?>>
+				<?php _e( '-- Select a Country --', 'wordcamporg' ); ?>
+			</option>
+
+			<?php foreach ( $available_countries as $available_country ) : ?>
+				<option value="<?php echo esc_attr( $available_country ); ?>" <?php selected( $available_country, $country ); ?>>
+					<?php echo esc_html( $available_country ); ?>
+				</option>
+			<?php endforeach; ?>
+		</select>
+
+		<?php $this->render_form_field_required_indicator(); ?>
+	</li>
+
 	<li class="wcpt-form-header">
 		<?php _e( 'Address', 'wordcamporg' ); ?>
 	</li>
@@ -204,10 +225,11 @@
 			id="_wcpt_sponsor_state"
 			name="_wcpt_sponsor_state"
 			value="<?php echo esc_attr( $state ); ?>"
-		    required
 		/>
 
-		<?php $this->render_form_field_required_indicator(); ?>
+		<span class="description">
+			<?php esc_html_e( 'Only necessary if you want this to be shown on your invoice', 'wordcamporg' ); ?>
+		</span>
 	</li>
 
 	<li>
@@ -227,27 +249,6 @@
 
 		<?php $this->render_form_field_required_indicator(); ?>
 	</li>
-
-	<li>
-		<label for="_wcpt_sponsor_country">
-			<?php _e( 'Country:', 'wordcamporg' ) ?>
-		</label>
-
-		<?php // todo add selected attribute to select and change first option value to empty string ?>
-		<select id="_wcpt_sponsor_country" name="_wcpt_sponsor_country">
-			<option value="null" <?php selected( $country, 'null' ); ?>>
-				<?php _e( '-- Select a Country --', 'wordcamporg' ); ?>
-			</option>
-
-			<?php foreach ( $available_countries as $available_country ) : ?>
-				<option value="<?php echo esc_attr( $available_country ); ?>" <?php selected( $available_country, $country ); ?>>
-					<?php echo esc_html( $available_country ); ?>
-				</option>
-			<?php endforeach; ?>
-		</select>
-
-		<?php $this->render_form_field_required_indicator(); ?>
-	</li>
 </ul>
 
 <span class="wcpt-form-required">
diff --git wordcamp.org/public_html/wp-content/plugins/wc-post-types/wc-post-types.php wordcamp.org/public_html/wp-content/plugins/wc-post-types/wc-post-types.php
index 43f3413e..2f26492c 100644
--- wordcamp.org/public_html/wp-content/plugins/wc-post-types/wc-post-types.php
+++ wordcamp.org/public_html/wp-content/plugins/wc-post-types/wc-post-types.php
@@ -29,8 +29,8 @@ class WordCamp_Post_Types_Plugin {
 
 		add_action( 'save_post', array( $this, 'save_post_speaker' ), 10, 2 );
 		add_action( 'save_post', array( $this, 'save_post_session' ), 10, 2 );
-		add_action( 'save_post', array( $this, 'save_post_organizer' ), 10, 2);
-		add_action( 'save_post', array( $this, 'save_post_sponsor' ), 10, 2);
+		add_action( 'save_post', array( $this, 'save_post_organizer' ), 10, 2 );
+		add_action( 'save_post', array( $this, 'save_post_sponsor' ), 10, 2 );
 
 		add_filter( 'manage_wcb_speaker_posts_columns', array( $this, 'manage_post_types_columns' ) );
 		add_filter( 'manage_wcb_session_posts_columns', array( $this, 'manage_post_types_columns' ) );
@@ -110,8 +110,9 @@ class WordCamp_Post_Types_Plugin {
 	 * Renders the Order Sponsor Levels admin page.
 	 */
 	function render_order_sponsor_levels() {
-		if ( ! isset( $_REQUEST['updated'] ) )
+		if ( ! isset( $_REQUEST['updated'] ) ) {
 			$_REQUEST['updated'] = false;
+		}
 
 		$levels = $this->get_sponsor_levels();
 		?>
@@ -129,15 +130,15 @@ class WordCamp_Post_Types_Plugin {
 					<?php _e( 'Change the order of sponsor levels are displayed in the sponsors page template.', 'wordcamporg' ); ?>
 				</div>
 				<ul class="sponsor-order">
-				<?php foreach( $levels as $term ): ?>
-					<li class="level">
-						<input type="hidden" class="level-id" name="wcb_sponsor_level_order[]" value="<?php echo esc_attr( $term->term_id ); ?>" />
-						<?php echo esc_html( $term->name ); ?>
-					</li>
-				<?php endforeach; ?>
+					<?php foreach ( $levels as $term ): ?>
+						<li class="level">
+							<input type="hidden" class="level-id" name="wcb_sponsor_level_order[]" value="<?php echo esc_attr( $term->term_id ); ?>"/>
+							<?php echo esc_html( $term->name ); ?>
+						</li>
+					<?php endforeach; ?>
 				</ul>
 				<p class="submit">
-					<input type="submit" class="button-primary" value="<?php _e( 'Save Options', 'wordcamporg' ); ?>" />
+					<input type="submit" class="button-primary" value="<?php _e( 'Save Options', 'wordcamporg' ); ?>"/>
 				</p>
 			</form>
 		</div>
@@ -164,17 +165,18 @@ class WordCamp_Post_Types_Plugin {
 	 * Returns the sponsor level terms in set order.
 	 */
 	function get_sponsor_levels() {
-		$option         = get_option( 'wcb_sponsor_level_order' );
-		$term_objects   = get_terms( 'wcb_sponsor_level', array( 'get' => 'all' ) );
-		$terms          = array();
-		$ordered_terms  = array();
+		$option = get_option( 'wcb_sponsor_level_order' );
+		$term_objects = get_terms( 'wcb_sponsor_level', array( 'get' => 'all' ) );
+		$terms = array();
+		$ordered_terms = array();
 
 		foreach ( $term_objects as $term ) {
 			$terms[ $term->term_id ] = $term;
 		}
 
-		if ( empty( $option ) )
+		if ( empty( $option ) ) {
 			$option = array();
+		}
 
 		foreach ( $option as $term_id ) {
 			if ( isset( $terms[ $term_id ] ) ) {
@@ -192,8 +194,9 @@ class WordCamp_Post_Types_Plugin {
 	 * @param WP_Query $query
 	 */
 	function admin_pre_get_posts( $query ) {
-		if ( ! is_admin() || ! $query->is_main_query() )
+		if ( ! is_admin() || ! $query->is_main_query() ) {
 			return;
+		}
 
 		$current_screen = get_current_screen();
 
@@ -228,9 +231,9 @@ class WordCamp_Post_Types_Plugin {
 			<script type="text/javascript">
 				jQuery( document ).ready( function( $ ) {
 					$( '#wcpt-session-date' ).datepicker( {
-						dateFormat:  'yy-mm-dd',
-						changeMonth: true,
-						changeYear:  true
+						dateFormat : 'yy-mm-dd',
+						changeMonth : true,
+						changeYear : true
 					} );
 				} );
 			</script>
@@ -289,11 +292,11 @@ class WordCamp_Post_Types_Plugin {
 		}
 
 		$attr['show_avatars'] = $this->str_to_bool( $attr['show_avatars'] );
-		$attr['orderby']      = in_array( $attr['orderby'],      array( 'date', 'title', 'rand' ) ) ? $attr['orderby']      : 'date';
-		$attr['order']        = in_array( $attr['order'],        array( 'asc', 'desc'           ) ) ? $attr['order']        : 'desc';
-		$attr['speaker_link'] = in_array( $attr['speaker_link'], array( 'permalink'             ) ) ? $attr['speaker_link'] : '';
-		$attr['track']        = array_filter( explode( ',', $attr['track'] ) );
-		$attr['groups']       = array_filter( explode( ',', $attr['groups'] ) );
+		$attr['orderby'] = in_array( $attr['orderby'], array( 'date', 'title', 'rand' ) ) ? $attr['orderby'] : 'date';
+		$attr['order'] = in_array( $attr['order'], array( 'asc', 'desc' ) ) ? $attr['order'] : 'desc';
+		$attr['speaker_link'] = in_array( $attr['speaker_link'], array( 'permalink' ) ) ? $attr['speaker_link'] : '';
+		$attr['track'] = array_filter( explode( ',', $attr['track'] ) );
+		$attr['groups'] = array_filter( explode( ',', $attr['groups'] ) );
 
 		// Fetch all the relevant sessions
 		$session_args = array(
@@ -361,8 +364,9 @@ class WordCamp_Post_Types_Plugin {
 
 		$speakers = new WP_Query( $speaker_args );
 
-		if ( ! $speakers->have_posts() )
+		if ( ! $speakers->have_posts() ) {
 			return '';
+		}
 
 		// Render the HTML for the shortcode
 		ob_start();
@@ -373,13 +377,13 @@ class WordCamp_Post_Types_Plugin {
 			<?php while ( $speakers->have_posts() ) : $speakers->the_post(); ?>
 
 				<?php
-					$speaker_classes = array( 'wcorg-speaker', 'wcorg-speaker-' . sanitize_html_class( $post->post_name ) );
+				$speaker_classes = array( 'wcorg-speaker', 'wcorg-speaker-' . sanitize_html_class( $post->post_name ) );
 
-					if ( isset( $speakers_tracks[ get_the_ID() ] ) ) {
-						foreach ( $speakers_tracks[ get_the_ID() ] as $track ) {
-							$speaker_classes[] = sanitize_html_class( 'wcorg-track-' . $track );
-						}
+				if ( isset( $speakers_tracks[ get_the_ID() ] ) ) {
+					foreach ( $speakers_tracks[ get_the_ID() ] as $track ) {
+						$speaker_classes[] = sanitize_html_class( 'wcorg-track-' . $track );
 					}
+				}
 				?>
 
 				<!-- Organizers note: The id attribute is deprecated and only remains for backwards compatibility, please use the corresponding class to target individual speakers -->
@@ -406,6 +410,7 @@ class WordCamp_Post_Types_Plugin {
 		<?php
 
 		wp_reset_postdata();
+
 		return ob_get_clean();
 	}
 
@@ -426,9 +431,9 @@ class WordCamp_Post_Types_Plugin {
 		$attr['orderby'] = ( in_array( $attr['orderby'], array( 'date', 'title', 'rand' ) ) ) ? $attr['orderby'] : 'date';
 
 		$query_args = array(
-			'post_type' => 'wcb_organizer',
+			'post_type'      => 'wcb_organizer',
 			'posts_per_page' => intval( $attr['posts_per_page'] ),
-			'orderby' => $attr['orderby'],
+			'orderby'        => $attr['orderby'],
 		);
 
 		if ( ! empty( $attr['teams'] ) ) {
@@ -443,8 +448,9 @@ class WordCamp_Post_Types_Plugin {
 
 		$organizers = new WP_Query( $query_args );
 
-		if ( ! $organizers->have_posts() )
+		if ( ! $organizers->have_posts() ) {
 			return '';
+		}
 
 		ob_start();
 		?>
@@ -468,6 +474,7 @@ class WordCamp_Post_Types_Plugin {
 		wp_reset_postdata();
 		$content = ob_get_contents();
 		ob_end_clean();
+
 		return $content;
 	}
 
@@ -491,11 +498,13 @@ class WordCamp_Post_Types_Plugin {
 			$attr[ $key_for_case_sensitive_value ] = strtolower( $attr[ $key_for_case_sensitive_value ] );
 		}
 
-		if ( ! in_array( $attr['speaker_link'], array( 'anchor', 'wporg', 'permalink', 'none' ) ) )
+		if ( ! in_array( $attr['speaker_link'], array( 'anchor', 'wporg', 'permalink', 'none' ) ) ) {
 			$attr['speaker_link'] = 'anchor';
+		}
 
-		if ( ! in_array( $attr['session_link'], array( 'permalink', 'anchor', 'none' ) ) )
+		if ( ! in_array( $attr['session_link'], array( 'permalink', 'anchor', 'none' ) ) ) {
 			$attr['session_link'] = 'permalink';
+		}
 
 		$columns = array();
 		$tracks = array();
@@ -504,7 +513,7 @@ class WordCamp_Post_Types_Plugin {
 			'post_type'      => 'wcb_session',
 			'posts_per_page' => -1,
 			'meta_query'     => array(
-				'relation'   => 'AND',
+				'relation' => 'AND',
 				array(
 					'key'     => '_wcpt_session_time',
 					'compare' => 'EXISTS',
@@ -520,8 +529,9 @@ class WordCamp_Post_Types_Plugin {
 			$terms = array_map( 'trim', explode( ',', $attr['tracks'] ) );
 			foreach ( $terms as $term_slug ) {
 				$term = get_term_by( 'slug', $term_slug, 'wcb_track' );
-				if ( $term )
+				if ( $term ) {
 					$tracks[ $term->term_id ] = $term;
+				}
 			}
 
 			// If tracks were provided, restrict the lookup in WP_Query.
@@ -536,8 +546,8 @@ class WordCamp_Post_Types_Plugin {
 
 		if ( $attr['date'] && strtotime( $attr['date'] ) ) {
 			$query_args['meta_query'][] = array(
-				'key'   => '_wcpt_session_time',
-				'value' => array(
+				'key'     => '_wcpt_session_time',
+				'value'   => array(
 					strtotime( $attr['date'] ),
 					strtotime( $attr['date'] . ' +1 day' ),
 				),
@@ -548,10 +558,11 @@ class WordCamp_Post_Types_Plugin {
 
 		// Use tracks to form the columns.
 		if ( $tracks ) {
-			foreach ( $tracks as $track )
+			foreach ( $tracks as $track ) {
 				$columns[ $track->term_id ] = $track->term_id;
+			}
 		} else {
-			$columns[ 0 ] = 0;
+			$columns[0] = 0;
 		}
 
 		unset( $tracks );
@@ -566,14 +577,16 @@ class WordCamp_Post_Types_Plugin {
 			$time = absint( get_post_meta( $session->ID, '_wcpt_session_time', true ) );
 			$tracks = get_the_terms( $session->ID, 'wcb_track' );
 
-			if ( ! isset( $sessions[ $time ] ) )
+			if ( ! isset( $sessions[ $time ] ) ) {
 				$sessions[ $time ] = array();
+			}
 
 			if ( empty( $tracks ) ) {
-				$sessions[ $time ][ 0 ] = $session->ID;
+				$sessions[ $time ][0] = $session->ID;
 			} else {
-				foreach ( $tracks as $track )
+				foreach ( $tracks as $track ) {
 					$sessions[ $time ][ $track->term_id ] = $session->ID;
+				}
 			}
 		}
 
@@ -584,10 +597,13 @@ class WordCamp_Post_Types_Plugin {
 		if ( 'all' == $attr['tracks'] ) {
 			$used_terms = array();
 
-			foreach ( $sessions as $time => $entry )
-				if ( is_array( $entry ) )
-					foreach ( $entry as $term_id => $session_id )
+			foreach ( $sessions as $time => $entry ) {
+				if ( is_array( $entry ) ) {
+					foreach ( $entry as $term_id => $session_id ) {
 						$used_terms[ $term_id ] = $term_id;
+					}
+				}
+			}
 
 			$columns = array_intersect( $columns, $used_terms );
 			unset( $used_terms );
@@ -641,16 +657,17 @@ class WordCamp_Post_Types_Plugin {
 				}
 
 				// Gather relevant data about the session
-				$colspan              = 1;
-				$classes              = array();
-				$session              = get_post( $entry[ $term_id ] );
-				$session_title        = apply_filters( 'the_title', $session->post_title );
-				$session_tracks       = get_the_terms( $session->ID, 'wcb_track' );
+				$colspan = 1;
+				$classes = array();
+				$session = get_post( $entry[ $term_id ] );
+				$session_title = apply_filters( 'the_title', $session->post_title );
+				$session_tracks = get_the_terms( $session->ID, 'wcb_track' );
 				$session_track_titles = is_array( $session_tracks ) ? implode( ', ', wp_list_pluck( $session_tracks, 'name' ) ) : '';
-				$session_type         = get_post_meta( $session->ID, '_wcpt_session_type', true );
+				$session_type = get_post_meta( $session->ID, '_wcpt_session_type', true );
 
-				if ( ! in_array( $session_type, array( 'session', 'custom' ) ) )
+				if ( ! in_array( $session_type, array( 'session', 'custom' ) ) ) {
 					$session_type = 'session';
+				}
 
 				// Fetch speakers associated with this session.
 				$speakers = array();
@@ -678,12 +695,13 @@ class WordCamp_Post_Types_Plugin {
 				$classes[] = 'wcb-session-' . $session->post_name;
 
 				// Determine the session title
-				if ( 'permalink' == $attr['session_link'] && 'session' == $session_type )
+				if ( 'permalink' == $attr['session_link'] && 'session' == $session_type ) {
 					$session_title_html = sprintf( '<a class="wcpt-session-title" href="%s">%s</a>', esc_url( get_permalink( $session->ID ) ), $session_title );
-				elseif ( 'anchor' == $attr['session_link'] && 'session' == $session_type )
+				} elseif ( 'anchor' == $attr['session_link'] && 'session' == $session_type ) {
 					$session_title_html = sprintf( '<a class="wcpt-session-title" href="%s">%s</a>', esc_url( $this->get_wcpt_anchor_permalink( $session->ID ) ), $session_title );
-				else
+				} else {
 					$session_title_html = sprintf( '<span class="wcpt-session-title">%s</span>', $session_title );
+				}
 
 				$content = $session_title_html;
 
@@ -692,29 +710,36 @@ class WordCamp_Post_Types_Plugin {
 					$speaker_name = apply_filters( 'the_title', $speaker->post_title );
 
 					if ( 'anchor' == $attr['speaker_link'] ) // speakers/#wcorg-speaker-slug
+					{
 						$speaker_permalink = $this->get_wcpt_anchor_permalink( $speaker->ID );
-					elseif ( 'wporg' == $attr['speaker_link'] ) // profiles.wordpress.org/user
+					} elseif ( 'wporg' == $attr['speaker_link'] ) // profiles.wordpress.org/user
+					{
 						$speaker_permalink = $this->get_speaker_wporg_permalink( $speaker->ID );
-					elseif ( 'permalink' == $attr['speaker_link'] ) // year.city.wordcamp.org/speakers/slug
+					} elseif ( 'permalink' == $attr['speaker_link'] ) // year.city.wordcamp.org/speakers/slug
+					{
 						$speaker_permalink = get_permalink( $speaker->ID );
+					}
 
-					if ( ! empty( $speaker_permalink ) )
+					if ( ! empty( $speaker_permalink ) ) {
 						$speaker_name = sprintf( '<a href="%s">%s</a>', esc_url( $speaker_permalink ), esc_html( $speaker_name ) );
+					}
 
 					$speakers_names[] = $speaker_name;
 				}
 
 				// Add speakers names to the output string.
-				if ( count( $speakers_names ) )
+				if ( count( $speakers_names ) ) {
 					$content .= sprintf( ' <span class="wcpt-session-speakers">%s</span>', implode( ', ', $speakers_names ) );
+				}
 
 				$columns_clone = $columns;
 
 				// If the next element in the table is the same as the current one, use colspan
 				if ( $key != key( array_slice( $columns, -1, 1, true ) ) ) {
 					while ( $pair = each( $columns_clone ) ) {
-						if ( $pair['key'] == $key )
+						if ( $pair['key'] == $key ) {
 							continue;
+						}
 
 						if ( ! empty( $entry[ $pair['value'] ] ) && $entry[ $pair['value'] ] == $session->ID ) {
 							$colspan++;
@@ -728,7 +753,7 @@ class WordCamp_Post_Types_Plugin {
 				$columns_html .= sprintf( '<td colspan="%d" class="%s" data-track-title="%s">%s</td>', $colspan, esc_attr( implode( ' ', $classes ) ), $session_track_titles, $content );
 			}
 
-			$global_session      = $colspan == count( $columns ) ? ' global-session' : '';
+			$global_session = $colspan == count( $columns ) ? ' global-session' : '';
 			$global_session_slug = $global_session ? ' ' . sanitize_html_class( sanitize_title_with_dashes( $session->post_title ) ) : '';
 
 			$html .= sprintf( '<tr class="%s">', sanitize_html_class( 'wcpt-time-' . date( $time_format, $time ) ) . $global_session . $global_session_slug );
@@ -739,6 +764,7 @@ class WordCamp_Post_Types_Plugin {
 
 		$html .= '</tbody>';
 		$html .= '</table>';
+
 		return $html;
 	}
 
@@ -749,18 +775,22 @@ class WordCamp_Post_Types_Plugin {
 	 */
 	function get_speaker_wporg_permalink( $speaker_id ) {
 		$post = get_post( $speaker_id );
-		if ( $post->post_type != 'wcb_speaker' || $post->post_status != 'publish' )
+		if ( $post->post_type != 'wcb_speaker' || $post->post_status != 'publish' ) {
 			return;
+		}
 
 		$wporg_user_id = get_post_meta( $speaker_id, '_wcpt_user_id', true );
-		if ( ! $wporg_user_id )
+		if ( ! $wporg_user_id ) {
 			return;
+		}
 
 		$user = get_user_by( 'id', $wporg_user_id );
-		if ( ! $user )
+		if ( ! $user ) {
 			return;
+		}
 
 		$permalink = sprintf( 'http://profiles.wordpress.org/%s', strtolower( $user->user_nicename ) );
+
 		return esc_url_raw( $permalink );
 	}
 
@@ -784,7 +814,7 @@ class WordCamp_Post_Types_Plugin {
 			return '';
 		}
 
-		switch( $anchor_target->post_type ) {
+		switch ( $anchor_target->post_type ) {
 			case 'wcb_speaker':
 				$permalink = has_shortcode( $post->post_content, 'speakers' ) ? get_permalink( $post->id ) : $this->get_wcpt_permalink( 'speakers' );
 				$anchor_id = $anchor_target->post_name;
@@ -890,8 +920,9 @@ class WordCamp_Post_Types_Plugin {
 
 		// Convert bools to real booleans.
 		$bools = array( 'show_meta', 'show_avatars' );
-		foreach ( $bools as $key )
+		foreach ( $bools as $key ) {
 			$attr[ $key ] = $this->str_to_bool( $attr[ $key ] );
+		}
 
 		// Clean up other attributes.
 		foreach ( array( 'track', 'speaker_link', 'orderby', 'order' ) as $key_for_case_sensitive_value ) {
@@ -900,8 +931,9 @@ class WordCamp_Post_Types_Plugin {
 
 		$attr['avatar_size'] = absint( $attr['avatar_size'] );
 
-		if ( ! in_array( $attr['speaker_link'], array( 'anchor', 'wporg', 'permalink', 'none' ) ) )
-			$attr['speaker_link'] = 'anchor';   // todo this is inconsistent with the values passed to shortcode_atts, and probably not needed if the default above is changed to 'anchor'
+		if ( ! in_array( $attr['speaker_link'], array( 'anchor', 'wporg', 'permalink', 'none' ) ) ) {
+			$attr['speaker_link'] = 'anchor';
+		}   // todo this is inconsistent with the values passed to shortcode_atts, and probably not needed if the default above is changed to 'anchor'
 
 		$attr['orderby'] = ( in_array( $attr['orderby'], array( 'date', 'title', 'rand' ) ) ) ? $attr['orderby'] : 'date';
 
@@ -918,7 +950,7 @@ class WordCamp_Post_Types_Plugin {
 
 			// Only ones marked "session" or where the meta key does
 			// not exist, for backwards compatibility.
-			'meta_query' => array(
+			'meta_query'     => array(
 				'relation' => 'AND',
 
 				array(
@@ -935,7 +967,7 @@ class WordCamp_Post_Types_Plugin {
 						'value'   => '',
 						'compare' => 'NOT EXISTS',
 					),
-				)
+				),
 			),
 		);
 
@@ -962,8 +994,9 @@ class WordCamp_Post_Types_Plugin {
 		// Fetch sessions.
 		$sessions = new WP_Query( $args );
 
-		if ( ! $sessions->have_posts() )
+		if ( ! $sessions->have_posts() ) {
 			return;
+		}
 
 		ob_start();
 		?>
@@ -973,86 +1006,95 @@ class WordCamp_Post_Types_Plugin {
 			<?php while ( $sessions->have_posts() ) : $sessions->the_post(); ?>
 
 				<?php
-					// Things to be output, or not.
-					$session_meta = '';
-					$speakers_avatars = '';
-					$links            = array();
-
-					// Fetch speakers associated with this session.
-					$speakers = array();
-					$speakers_ids = array_map( 'absint', (array) get_post_meta( get_the_ID(), '_wcpt_speaker_id' ) );
-					if ( ! empty( $speakers_ids ) ) {
-						$speakers = get_posts( array(
-							'post_type'      => 'wcb_speaker',
-							'posts_per_page' => -1,
-							'post__in'       => $speakers_ids,
-						) );
-					}
+				// Things to be output, or not.
+				$session_meta = '';
+				$speakers_avatars = '';
+				$links = array();
 
-					// Should we add avatars?
-					if ( $attr['show_avatars'] ) {
-						foreach ( $speakers as $speaker ) {
-							$speakers_avatars .= get_avatar( get_post_meta( $speaker->ID, '_wcb_speaker_email', true ), absint( $attr['avatar_size'] ) );
-						}
-					}
+				// Fetch speakers associated with this session.
+				$speakers = array();
+				$speakers_ids = array_map( 'absint', (array) get_post_meta( get_the_ID(), '_wcpt_speaker_id' ) );
+				if ( ! empty( $speakers_ids ) ) {
+					$speakers = get_posts( array(
+						'post_type'      => 'wcb_speaker',
+						'posts_per_page' => -1,
+						'post__in'       => $speakers_ids,
+					) );
+				}
 
-					// Should we output meta?
-					if ( $attr['show_meta'] ) {
-						$speaker_permalink = '';
-						$speakers_names = array();
-						$tracks_names = array();
+				// Should we add avatars?
+				if ( $attr['show_avatars'] ) {
+					foreach ( $speakers as $speaker ) {
+						$speakers_avatars .= get_avatar( get_post_meta( $speaker->ID, '_wcb_speaker_email', true ), absint( $attr['avatar_size'] ) );
+					}
+				}
 
-						foreach ( $speakers as $speaker ) {
-							$speaker_name = apply_filters( 'the_title', $speaker->post_title );
+				// Should we output meta?
+				if ( $attr['show_meta'] ) {
+					$speaker_permalink = '';
+					$speakers_names = array();
+					$tracks_names = array();
+
+					foreach ( $speakers as $speaker ) {
+						$speaker_name = apply_filters( 'the_title', $speaker->post_title );
+
+						if ( 'anchor' == $attr['speaker_link'] ) // speakers/#wcorg-speaker-slug
+						{
+							$speaker_permalink = $this->get_wcpt_anchor_permalink( $speaker->ID );
+						} elseif ( 'wporg' == $attr['speaker_link'] ) // profiles.wordpress.org/user
+						{
+							$speaker_permalink = $this->get_speaker_wporg_permalink( $speaker->ID );
+						} elseif ( 'permalink' == $attr['speaker_link'] ) // year.city.wordcamp.org/speakers/slug
+						{
+							$speaker_permalink = get_permalink( $speaker->ID );
+						}
 
-							if ( 'anchor' == $attr['speaker_link'] ) // speakers/#wcorg-speaker-slug
-								$speaker_permalink = $this->get_wcpt_anchor_permalink( $speaker->ID );
-							elseif ( 'wporg' == $attr['speaker_link'] ) // profiles.wordpress.org/user
-								$speaker_permalink = $this->get_speaker_wporg_permalink( $speaker->ID );
-							elseif ( 'permalink' == $attr['speaker_link'] ) // year.city.wordcamp.org/speakers/slug
-								$speaker_permalink = get_permalink( $speaker->ID );
+						if ( ! empty( $speaker_permalink ) ) {
+							$speaker_name = sprintf( '<a href="%s">%s</a>', esc_url( $speaker_permalink ), esc_html( $speaker_name ) );
+						}
 
-							if ( ! empty( $speaker_permalink ) )
-								$speaker_name = sprintf( '<a href="%s">%s</a>', esc_url( $speaker_permalink ), esc_html( $speaker_name ) );
+						$speakers_names[] = $speaker_name;
+					}
 
-							$speakers_names[] = $speaker_name;
+					$tracks = get_the_terms( get_the_ID(), 'wcb_track' );
+					if ( is_array( $tracks ) ) {
+						foreach ( $tracks as $track ) {
+							$tracks_names[] = apply_filters( 'the_title', $track->name );
 						}
-
-						$tracks = get_the_terms( get_the_ID(), 'wcb_track' );
-						if ( is_array( $tracks ) )
-							foreach ( $tracks as $track )
-								$tracks_names[] = apply_filters( 'the_title', $track->name );
-
-						// Add speakers and tracks to session meta.
-						if ( ! empty( $speakers_names ) && ! empty( $tracks_names ) )
-							$session_meta .= sprintf( __( 'Presented by %1$s in %2$s.', 'wordcamporg' ), implode( ', ', $speakers_names ), implode( ', ', $tracks_names ) );
-						elseif ( ! empty( $speakers_names ) )
-							$session_meta .= sprintf( __( 'Presented by %s.', 'wordcamporg' ), implode( ', ', $speakers_names ) );
-						elseif ( ! empty( $tracks_names ) )
-							$session_meta .= sprintf( __( 'Presented in %s.', 'wordcamporg' ), implode( ', ', $tracks_names ) );
-
-						if ( ! empty( $session_meta ) )
-							$session_meta = sprintf( '<p class="wcpt-session-meta">%s</p>', $session_meta );
 					}
 
-					// Gather data for list of links
-					if ( $url = get_post_meta( $post->ID, '_wcpt_session_slides', true ) ) {
-						$links['slides'] = array(
-							'url'   => $url,
-							'label' => __( 'Slides', 'wordcamporg' ),
-						);
+					// Add speakers and tracks to session meta.
+					if ( ! empty( $speakers_names ) && ! empty( $tracks_names ) ) {
+						$session_meta .= sprintf( __( 'Presented by %1$s in %2$s.', 'wordcamporg' ), implode( ', ', $speakers_names ), implode( ', ', $tracks_names ) );
+					} elseif ( ! empty( $speakers_names ) ) {
+						$session_meta .= sprintf( __( 'Presented by %s.', 'wordcamporg' ), implode( ', ', $speakers_names ) );
+					} elseif ( ! empty( $tracks_names ) ) {
+						$session_meta .= sprintf( __( 'Presented in %s.', 'wordcamporg' ), implode( ', ', $tracks_names ) );
 					}
 
-					if ( $url = get_post_meta( $post->ID, '_wcpt_session_video', true ) ) {
-						$links['video'] = array(
-							'url'   => $url,
-							'label' => __( 'Video', 'wordcamporg' ),
-						);
+					if ( ! empty( $session_meta ) ) {
+						$session_meta = sprintf( '<p class="wcpt-session-meta">%s</p>', $session_meta );
 					}
+				}
+
+				// Gather data for list of links
+				if ( $url = get_post_meta( $post->ID, '_wcpt_session_slides', true ) ) {
+					$links['slides'] = array(
+						'url'   => $url,
+						'label' => __( 'Slides', 'wordcamporg' ),
+					);
+				}
+
+				if ( $url = get_post_meta( $post->ID, '_wcpt_session_video', true ) ) {
+					$links['video'] = array(
+						'url'   => $url,
+						'label' => __( 'Video', 'wordcamporg' ),
+					);
+				}
 
 				?>
 
-				<div id="wcorg-session-<?php the_ID(); ?>" class="wcorg-session" >
+				<div id="wcorg-session-<?php the_ID(); ?>" class="wcorg-session">
 					<h2><?php the_title(); ?></h2>
 					<div class="wcorg-session-description">
 						<?php the_post_thumbnail(); ?>
@@ -1062,7 +1104,7 @@ class WordCamp_Post_Types_Plugin {
 
 						<?php if ( $links ) : ?>
 							<ul class="wcorg-session-links">
-								<?php foreach( $links as $link ) : ?>
+								<?php foreach ( $links as $link ) : ?>
 									<li>
 										<a href="<?php echo esc_url( $link['url'] ); ?>">
 											<?php echo esc_html( $link['label'] ); ?>
@@ -1083,6 +1125,7 @@ class WordCamp_Post_Types_Plugin {
 		wp_reset_postdata();
 		$content = ob_get_contents();
 		ob_end_clean();
+
 		return $content;
 	}
 
@@ -1093,7 +1136,7 @@ class WordCamp_Post_Types_Plugin {
 		global $post;
 
 		$attr = shortcode_atts( array(
-			'link' => 'none'
+			'link' => 'none',
 		), $attr );
 
 		$attr['link'] = strtolower( $attr['link'] );
@@ -1103,8 +1146,8 @@ class WordCamp_Post_Types_Plugin {
 		?>
 
 		<div class="wcorg-sponsors">
-		<?php foreach ( $terms as $term ) : ?>
-			<?php
+			<?php foreach ( $terms as $term ) : ?>
+				<?php
 				$sponsors = new WP_Query( array(
 					'post_type'      => 'wcb_sponsor',
 					'order'          => 'ASC',
@@ -1113,46 +1156,48 @@ class WordCamp_Post_Types_Plugin {
 					'term'           => $term->slug,
 				) );
 
-				if ( ! $sponsors->have_posts() )
+				if ( ! $sponsors->have_posts() ) {
 					continue;
-			?>
+				}
+				?>
 
-			<div class="wcorg-sponsor-level-<?php echo sanitize_html_class( $term->slug ); ?>">
-				<h2><?php echo esc_html( $term->name ); ?></h2>
+				<div class="wcorg-sponsor-level-<?php echo sanitize_html_class( $term->slug ); ?>">
+					<h2><?php echo esc_html( $term->name ); ?></h2>
 
-				<?php while ( $sponsors->have_posts() ) : $sponsors->the_post(); ?>
-				<?php $website = get_post_meta( get_the_ID(), '_wcpt_sponsor_website', true ); ?>
+					<?php while ( $sponsors->have_posts() ) : $sponsors->the_post(); ?>
+						<?php $website = get_post_meta( get_the_ID(), '_wcpt_sponsor_website', true ); ?>
 
-				<div id="wcorg-sponsor-<?php the_ID(); ?>" class="wcorg-sponsor">
-					<?php if ( 'website' == $attr['link'] && $website ) : ?>
-						<h3><a href="<?php echo esc_attr( esc_url( $website ) ); ?>"><?php the_title(); ?></a></h3>
-					<?php else : ?>
-						<h3><?php the_title(); ?></h3>
-					<?php endif; ?>
+						<div id="wcorg-sponsor-<?php the_ID(); ?>" class="wcorg-sponsor">
+							<?php if ( 'website' == $attr['link'] && $website ) : ?>
+								<h3><a href="<?php echo esc_attr( esc_url( $website ) ); ?>"><?php the_title(); ?></a></h3>
+							<?php else : ?>
+								<h3><?php the_title(); ?></h3>
+							<?php endif; ?>
 
-					<div class="wcorg-sponsor-description">
-						<?php if ( 'website' == $attr['link'] && $website ) : ?>
-							<a href="<?php echo esc_attr( esc_url( $website ) ); ?>">
-								<?php the_post_thumbnail( 'wcb-sponsor-logo-horizontal-2x' ); ?>
-							</a>
-						<?php else : ?>
-							<?php the_post_thumbnail( 'wcb-sponsor-logo-horizontal-2x' ); ?>
-						<?php endif; ?>
+							<div class="wcorg-sponsor-description">
+								<?php if ( 'website' == $attr['link'] && $website ) : ?>
+									<a href="<?php echo esc_attr( esc_url( $website ) ); ?>">
+										<?php the_post_thumbnail( 'wcb-sponsor-logo-horizontal-2x' ); ?>
+									</a>
+								<?php else : ?>
+									<?php the_post_thumbnail( 'wcb-sponsor-logo-horizontal-2x' ); ?>
+								<?php endif; ?>
 
-						<?php the_content(); ?>
-					</div>
-				</div><!-- #sponsor -->
-				<?php endwhile; ?>
+								<?php the_content(); ?>
+							</div>
+						</div><!-- #sponsor -->
+					<?php endwhile; ?>
 
-			</div><!-- .wcorg-sponsor-level -->
+				</div><!-- .wcorg-sponsor-level -->
 
-		<?php endforeach; ?>
+			<?php endforeach; ?>
 		</div><!-- .wcorg-sponsors -->
 		<?php
 
 		wp_reset_postdata();
 		$content = ob_get_contents();
 		ob_end_clean();
+
 		return $content;
 	}
 
@@ -1187,7 +1232,7 @@ class WordCamp_Post_Types_Plugin {
 		global $post;
 		$enabled_site_ids = apply_filters( 'wcpt_speaker_post_avatar_enabled_site_ids', array( 364 ) );    // 2014.sf
 
-		if ( ! $this->is_single_cpt_post( 'wcb_speaker') ) {
+		if ( ! $this->is_single_cpt_post( 'wcb_speaker' ) ) {
 			return $content;
 		}
 
@@ -1197,6 +1242,7 @@ class WordCamp_Post_Types_Plugin {
 		}
 
 		$avatar = get_avatar( get_post_meta( $post->ID, '_wcb_speaker_email', true ) );
+
 		return '<div class="speaker-avatar">' . $avatar . '</div>' . $content;
 	}
 
@@ -1215,7 +1261,7 @@ class WordCamp_Post_Types_Plugin {
 		global $post;
 		$enabled_site_ids = apply_filters( 'wcpt_session_post_speaker_info_enabled_site_ids', array( 364 ) );    // 2014.sf
 
-		if ( ! $this->is_single_cpt_post( 'wcb_session') ) {
+		if ( ! $this->is_single_cpt_post( 'wcb_session' ) ) {
 			return $content;
 		}
 
@@ -1300,7 +1346,7 @@ class WordCamp_Post_Types_Plugin {
 			return $content;
 		}
 
-		$session_slides_html  = '<div class="session-video">';
+		$session_slides_html = '<div class="session-video">';
 		$session_slides_html .= sprintf( __( '<a href="%s" target="_blank">View Session Slides</a>', 'wordcamporg' ), esc_url( $session_slides ) );
 		$session_slides_html .= '</div>';
 
@@ -1341,7 +1387,7 @@ class WordCamp_Post_Types_Plugin {
 			return $content;
 		}
 
-		$session_video_html  = '<div class="session-video">';
+		$session_video_html = '<div class="session-video">';
 		$session_video_html .= sprintf( __( '<a href="%s" target="_blank">View Session Video</a>', 'wordcamporg' ), esc_url( $session_video ) );
 		$session_video_html .= '</div>';
 
@@ -1363,7 +1409,7 @@ class WordCamp_Post_Types_Plugin {
 		global $post;
 		$enabled_site_ids = apply_filters( 'wcpt_speaker_post_session_info_enabled_site_ids', array( 364 ) );    // 2014.sf
 
-		if ( ! $this->is_single_cpt_post( 'wcb_speaker') ) {
+		if ( ! $this->is_single_cpt_post( 'wcb_speaker' ) ) {
 			return $content;
 		}
 
@@ -1412,12 +1458,12 @@ class WordCamp_Post_Types_Plugin {
 	 * Fired during add_meta_boxes, adds extra meta boxes to our custom post types.
 	 */
 	function add_meta_boxes() {
-		add_meta_box( 'speaker-info',   __( 'Speaker Info',   'wordcamporg'  ), array( $this, 'metabox_speaker_info'   ), 'wcb_speaker',   'side' );
-		add_meta_box( 'organizer-info', __( 'Organizer Info', 'wordcamporg'  ), array( $this, 'metabox_organizer_info' ), 'wcb_organizer', 'side' );
-		add_meta_box( 'speakers-list',  __( 'Speakers',       'wordcamporg'  ), array( $this, 'metabox_speakers_list'  ), 'wcb_session',   'side' );
-		add_meta_box( 'session-info',   __( 'Session Info',   'wordcamporg'  ), array( $this, 'metabox_session_info'   ), 'wcb_session',   'normal' );
-		add_meta_box( 'sponsor-info',   __( 'Sponsor Info',   'wordcamporg'  ), array( $this, 'metabox_sponsor_info'   ), 'wcb_sponsor',   'normal' );
-		add_meta_box( 'invoice-sponsor', __( 'Invoice Sponsor', 'wordcamporg' ), array( $this, 'metabox_invoice_sponsor' ), 'wcb_sponsor', 'side'   );
+		add_meta_box( 'speaker-info', __( 'Speaker Info', 'wordcamporg' ), array( $this, 'metabox_speaker_info' ), 'wcb_speaker', 'side' );
+		add_meta_box( 'organizer-info', __( 'Organizer Info', 'wordcamporg' ), array( $this, 'metabox_organizer_info' ), 'wcb_organizer', 'side' );
+		add_meta_box( 'speakers-list', __( 'Speakers', 'wordcamporg' ), array( $this, 'metabox_speakers_list' ), 'wcb_session', 'side' );
+		add_meta_box( 'session-info', __( 'Session Info', 'wordcamporg' ), array( $this, 'metabox_session_info' ), 'wcb_session', 'normal' );
+		add_meta_box( 'sponsor-info', __( 'Sponsor Info', 'wordcamporg' ), array( $this, 'metabox_sponsor_info' ), 'wcb_sponsor', 'normal' );
+		add_meta_box( 'invoice-sponsor', __( 'Invoice Sponsor', 'wordcamporg' ), array( $this, 'metabox_invoice_sponsor' ), 'wcb_sponsor', 'side' );
 	}
 
 	/**
@@ -1428,23 +1474,24 @@ class WordCamp_Post_Types_Plugin {
 		$email = get_post_meta( $post->ID, '_wcb_speaker_email', true );
 
 		$wporg_username = '';
-		$user_id        = get_post_meta( $post->ID, '_wcpt_user_id', true );
-		$wporg_user     = get_user_by( 'id', $user_id );
+		$user_id = get_post_meta( $post->ID, '_wcpt_user_id', true );
+		$wporg_user = get_user_by( 'id', $user_id );
 
-		if ( $wporg_user )
+		if ( $wporg_user ) {
 			$wporg_username = $wporg_user->user_nicename;
+		}
 		?>
 
 		<?php wp_nonce_field( 'edit-speaker-info', 'wcpt-meta-speaker-info' ); ?>
 
 		<p>
 			<label for="wcpt-gravatar-email"><?php _e( 'Gravatar Email:', 'wordcamporg' ); ?></label>
-			<input type="text" class="widefat" id="wcpt-gravatar-email" name="wcpt-gravatar-email" value="<?php echo esc_attr( $email ); ?>" />
+			<input type="text" class="widefat" id="wcpt-gravatar-email" name="wcpt-gravatar-email" value="<?php echo esc_attr( $email ); ?>"/>
 		</p>
 
 		<p>
 			<label for="wcpt-wporg-username"><?php _e( 'WordPress.org Username:', 'wordcamporg' ); ?></label>
-			<input type="text" class="widefat" id="wcpt-wporg-username" name="wcpt-wporg-username" value="<?php echo esc_attr( $wporg_username ); ?>" />
+			<input type="text" class="widefat" id="wcpt-wporg-username" name="wcpt-wporg-username" value="<?php echo esc_attr( $wporg_username ); ?>"/>
 		</p>
 
 		<?php
@@ -1457,18 +1504,19 @@ class WordCamp_Post_Types_Plugin {
 		global $post;
 
 		$wporg_username = '';
-		$user_id        = get_post_meta( $post->ID, '_wcpt_user_id', true );
-		$wporg_user     = get_user_by( 'id', $user_id );
+		$user_id = get_post_meta( $post->ID, '_wcpt_user_id', true );
+		$wporg_user = get_user_by( 'id', $user_id );
 
-		if ( $wporg_user )
+		if ( $wporg_user ) {
 			$wporg_username = $wporg_user->user_nicename;
+		}
 		?>
 
 		<?php wp_nonce_field( 'edit-organizer-info', 'wcpt-meta-organizer-info' ); ?>
 
 		<p>
 			<label for="wcpt-wporg-username"><?php _e( 'WordPress.org Username:', 'wordcamporg' ); ?></label>
-			<input type="text" class="widefat" id="wcpt-wporg-username" name="wcpt-wporg-username" value="<?php echo esc_attr( $wporg_username ); ?>" />
+			<input type="text" class="widefat" id="wcpt-wporg-username" name="wcpt-wporg-username" value="<?php echo esc_attr( $wporg_username ); ?>"/>
 		</p>
 
 		<?php
@@ -1482,7 +1530,7 @@ class WordCamp_Post_Types_Plugin {
 		$speakers = get_post_meta( $post->ID, '_wcb_session_speakers', true );
 		wp_enqueue_script( 'jquery-ui-autocomplete' );
 
-		$speakers_names   = array();
+		$speakers_names = array();
 		$speakers_objects = get_posts( array(
 			'post_type'      => 'wcb_speaker',
 			'post_status'    => 'publish',
@@ -1490,8 +1538,9 @@ class WordCamp_Post_Types_Plugin {
 		) );
 
 		// We'll use these in js.
-		foreach ( $speakers_objects as $speaker_object )
+		foreach ( $speakers_objects as $speaker_object ) {
 			$speakers_names[] = $speaker_object->post_title;
+		}
 		$speakers_names_first = array_pop( $speakers_names );
 		?>
 
@@ -1501,68 +1550,73 @@ class WordCamp_Post_Types_Plugin {
 		<p class="description"><?php _e( 'A speaker entry must exist first. Separate multiple speakers with commas.', 'wordcamporg' ); ?></p>
 
 		<script>
-		jQuery(document).ready( function($) {
-			var availableSpeakers = [ <?php
-				foreach ( $speakers_names as $name ) { printf( "'%s', ", esc_js( $name ) ); }
-				printf( "'%s'", esc_js( $speakers_names_first ) ); // avoid the trailing comma
-			?> ];
-			function split( val ) {
-				return val.split( /,\s*/ );
-			}
-			function extractLast( term ) {
-				return split( term ).pop();
-			}
-			$( '#wcpt-speakers-list' )
-				.bind( 'keydown', function( event ) {
-					if ( event.keyCode == $.ui.keyCode.TAB &&
-						$( this ).data( 'autocomplete' ).menu.active ) {
-						event.preventDefault();
+			jQuery( document ).ready( function( $ ) {
+				var availableSpeakers = [ <?php
+					foreach ( $speakers_names as $name ) {
+						printf( "'%s', ", esc_js( $name ) );
 					}
-				})
-				.autocomplete({
-					minLength: 0,
-					source: function( request, response ) {
-						response( $.ui.autocomplete.filter(
-							availableSpeakers, extractLast( request.term ) ) )
-					},
-					focus: function() {
-						return false;
-					},
-					select: function( event, ui ) {
-						var terms = split( this.value );
-						terms.pop();
-						terms.push( ui.item.value );
-						terms.push( '' );
-						this.value = terms.join( ', ' );
-						$(this).focus();
-						return false;
-					},
-					open: function() { $(this).addClass('open'); },
-					close: function() { $(this).removeClass('open'); }
-				});
-		});
+					printf( "'%s'", esc_js( $speakers_names_first ) ); // avoid the trailing comma
+					?> ];
+
+				function split( val ) {
+					return val.split( /,\s*/ );
+				}
+
+				function extractLast( term ) {
+					return split( term ).pop();
+				}
+
+				$( '#wcpt-speakers-list' )
+					.bind( 'keydown', function( event ) {
+						if ( event.keyCode == $.ui.keyCode.TAB &&
+							$( this ).data( 'autocomplete' ).menu.active ) {
+							event.preventDefault();
+						}
+					} )
+					.autocomplete( {
+						minLength : 0,
+						source : function( request, response ) {
+							response( $.ui.autocomplete.filter(
+								availableSpeakers, extractLast( request.term ) ) )
+						},
+						focus : function() {
+							return false;
+						},
+						select : function( event, ui ) {
+							var terms = split( this.value );
+							terms.pop();
+							terms.push( ui.item.value );
+							terms.push( '' );
+							this.value = terms.join( ', ' );
+							$( this ).focus();
+							return false;
+						},
+						open : function() { $( this ).addClass( 'open' ); },
+						close : function() { $( this ).removeClass( 'open' ); }
+					} );
+			} );
 		</script>
 
 		<?php
 	}
 
 	function metabox_session_info() {
-		$post             = get_post();
-		$session_time     = absint( get_post_meta( $post->ID, '_wcpt_session_time', true ) );
-		$session_date     = ( $session_time ) ? date( 'Y-m-d', $session_time ) : date( 'Y-m-d' );
-		$session_hours    = ( $session_time ) ? date( 'g', $session_time )     : date( 'g' );
-		$session_minutes  = ( $session_time ) ? date( 'i', $session_time )     : '00';
-		$session_meridiem = ( $session_time ) ? date( 'a', $session_time )     : 'am';
-		$session_type     = get_post_meta( $post->ID, '_wcpt_session_type', true );
-		$session_slides   = get_post_meta( $post->ID, '_wcpt_session_slides', true );
-		$session_video    = get_post_meta( $post->ID, '_wcpt_session_video',  true );
+		$post = get_post();
+		$session_time = absint( get_post_meta( $post->ID, '_wcpt_session_time', true ) );
+		$session_date = ( $session_time ) ? date( 'Y-m-d', $session_time ) : date( 'Y-m-d' );
+		$session_hours = ( $session_time ) ? date( 'g', $session_time ) : date( 'g' );
+		$session_minutes = ( $session_time ) ? date( 'i', $session_time ) : '00';
+		$session_meridiem = ( $session_time ) ? date( 'a', $session_time ) : 'am';
+		$session_type = get_post_meta( $post->ID, '_wcpt_session_type', true );
+		$session_slides = get_post_meta( $post->ID, '_wcpt_session_slides', true );
+		$session_video = get_post_meta( $post->ID, '_wcpt_session_video', true );
 		?>
 
 		<?php wp_nonce_field( 'edit-session-info', 'wcpt-meta-session-info' ); ?>
 
 		<p>
 			<label for="wcpt-session-date"><?php _e( 'Date:', 'wordcamporg' ); ?></label>
-			<input type="text" id="wcpt-session-date" data-date="<?php echo esc_attr( $session_date ); ?>" name="wcpt-session-date" value="<?php echo esc_attr( $session_date ); ?>" /><br />
+			<input type="text" id="wcpt-session-date" data-date="<?php echo esc_attr( $session_date ); ?>" name="wcpt-session-date" value="<?php echo esc_attr( $session_date ); ?>"/><br/>
 			<label><?php _e( 'Time:', 'wordcamporg' ); ?></label>
 
 			<select name="wcpt-session-hour" aria-label="<?php _e( 'Session Start Hour', 'wordcamporg' ); ?>">
@@ -1597,12 +1651,12 @@ class WordCamp_Post_Types_Plugin {
 
 		<p>
 			<label for="wcpt-session-slides"><?php _e( 'Slides URL:', 'wordcamporg' ); ?></label>
-			<input type="text" class="widefat" id="wcpt-session-slides" name="wcpt-session-slides" value="<?php echo esc_url( $session_slides ); ?>" />
+			<input type="text" class="widefat" id="wcpt-session-slides" name="wcpt-session-slides" value="<?php echo esc_url( $session_slides ); ?>"/>
 		</p>
 
 		<p>
 			<label for="wcpt-session-video"><?php _e( 'WordPress.TV URL:', 'wordcamporg' ); ?></label>
-			<input type="text" class="widefat" id="wcpt-session-video" name="wcpt-session-video" value="<?php echo esc_url( $session_video ); ?>" />
+			<input type="text" class="widefat" id="wcpt-session-video" name="wcpt-session-video" value="<?php echo esc_url( $session_video ); ?>"/>
 		</p>
 
 		<?php
@@ -1614,21 +1668,25 @@ class WordCamp_Post_Types_Plugin {
 	 * @param WP_Post $sponsor
 	 */
 	function metabox_sponsor_info( $sponsor ) {
-		$company_name      = get_post_meta( $sponsor->ID, '_wcpt_sponsor_company_name',      true );
-		$website           = get_post_meta( $sponsor->ID, '_wcpt_sponsor_website',           true );
-		$first_name        = get_post_meta( $sponsor->ID, '_wcpt_sponsor_first_name',        true );
-		$last_name         = get_post_meta( $sponsor->ID, '_wcpt_sponsor_last_name',         true );
-		$email_address     = get_post_meta( $sponsor->ID, '_wcpt_sponsor_email_address',     true );
-		$phone_number      = get_post_meta( $sponsor->ID, '_wcpt_sponsor_phone_number',      true );
-		$vat_number        = get_post_meta( $sponsor->ID, '_wcpt_sponsor_vat_number',        true );
-		$twitter_handle    = get_post_meta( $sponsor->ID, '_wcpt_sponsor_twitter_handle',    true );
-
-		$street_address1 = get_post_meta( $sponsor->ID, '_wcpt_sponsor_street_address1',   true );
-		$street_address2 = get_post_meta( $sponsor->ID, '_wcpt_sponsor_street_address2',   true );
-		$city            = get_post_meta( $sponsor->ID, '_wcpt_sponsor_city',              true );
-		$state           = get_post_meta( $sponsor->ID, '_wcpt_sponsor_state',             true );
-		$zip_code        = get_post_meta( $sponsor->ID, '_wcpt_sponsor_zip_code',          true );
-		$country         = get_post_meta( $sponsor->ID, '_wcpt_sponsor_country',           true );
+		$company_name = get_post_meta( $sponsor->ID, '_wcpt_sponsor_company_name', true );
+		$website = get_post_meta( $sponsor->ID, '_wcpt_sponsor_website', true );
+		$first_name = get_post_meta( $sponsor->ID, '_wcpt_sponsor_first_name', true );
+		$last_name = get_post_meta( $sponsor->ID, '_wcpt_sponsor_last_name', true );
+		$email_address = get_post_meta( $sponsor->ID, '_wcpt_sponsor_email_address', true );
+		$phone_number = get_post_meta( $sponsor->ID, '_wcpt_sponsor_phone_number', true );
+		$vat_number = get_post_meta( $sponsor->ID, '_wcpt_sponsor_vat_number', true );
+		$twitter_handle = get_post_meta( $sponsor->ID, '_wcpt_sponsor_twitter_handle', true );
+
+		$street_address1 = get_post_meta( $sponsor->ID, '_wcpt_sponsor_street_address1', true );
+		$street_address2 = get_post_meta( $sponsor->ID, '_wcpt_sponsor_street_address2', true );
+		$city = get_post_meta( $sponsor->ID, '_wcpt_sponsor_city', true );
+		$state = get_post_meta( $sponsor->ID, '_wcpt_sponsor_state', true );
+		$zip_code = get_post_meta( $sponsor->ID, '_wcpt_sponsor_zip_code', true );
+		$country = get_post_meta( $sponsor->ID, '_wcpt_sponsor_country', true );
+
+		if ( $state === $this->get_sponsor_info_state_default_value() ) {
+			$state = '';
+		}
 
 		$available_countries = array( 'Abkhazia', 'Afghanistan', 'Aland', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla', 'Antigua and Barbuda', 'Argentina', 'Armenia', 'Aruba', 'Ascension', 'Ashmore and Cartier Islands', 'Australia', 'Australian Antarctic Territory', 'Austria', 'Azerbaijan', 'Bahamas, The', 'Bahrain', 'Baker Island', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Bouvet Island', 'Brazil', 'British Antarctic Territory', 'British Indian Ocean Territory', 'British Sovereign Base Areas', 'British Virgin Islands', 'Brunei', 'Bulgaria', 'Burkina Faso', 'Burundi', 'Cambodia', 'Cameroon', 'Canada', 'Cape Verde', 'Cayman Islands', 'Central African Republic', 'Chad', 'Chile', "China, People's Republic of", 'China, Republic of (Taiwan)', 'Christmas Island', 'Clipperton Island', 'Cocos (Keeling) Islands', 'Colombia', 'Comoros', 'Congo, (Congo  Brazzaville)', 'Congo, (Congo  Kinshasa)', 'Cook Islands', 'Coral Sea Islands', 'Costa Rica', "Cote d'Ivoire (Ivory Coast)", 'Croatia', 'Cuba', 'Cyprus', 'Czech Republic', 'Denmark', 'Djibouti', 'Dominica', 'Dominican Republic', 'Ecuador', 'Egypt', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Ethiopia', 'Falkland Islands (Islas Malvinas)', 'Faroe Islands', 'Fiji', 'Finland', 'France', 'French Guiana', 'French Polynesia', 'French Southern and Antarctic Lands', 'Gabon', 'Gambia, The', 'Georgia', 'Germany', 'Ghana', 'Gibraltar', 'Greece', 'Greenland', 'Grenada', 'Guadeloupe', 'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana', 'Haiti', 'Heard Island and McDonald Islands', 'Honduras', 'Hong Kong', 'Howland Island', 'Hungary', 'Iceland', 'India', 'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Isle of Man', 'Israel', 'Italy', 'Jamaica', 'Japan', 'Jarvis Island', 'Jersey', 'Johnston Atoll', 'Jordan', 'Kazakhstan', 'Kenya', 'Kingman Reef', 'Kiribati', 'Korea, North', 'Korea, South', 'Kuwait', 'Kyrgyzstan', 'Laos', 'Latvia', 'Lebanon', 'Lesotho', 'Liberia', 'Libya', 'Liechtenstein', 'Lithuania', 'Luxembourg', 'Macau', 'Macedonia', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands', 'Martinique', 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico', 'Micronesia', 'Midway Islands', 'Moldova', 'Monaco', 'Mongolia', 'Montenegro', 'Montserrat', 'Morocco', 'Mozambique', 'Myanmar (Burma)', 'Nagorno-Karabakh', 'Namibia', 'Nauru', 'Navassa Island', 'Nepal', 'Netherlands', 'Netherlands Antilles', 'New Caledonia', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norfolk Island', 'Northern Cyprus', 'Northern Mariana Islands', 'Norway', 'Oman', 'Pakistan', 'Palau', 'Palmyra Atoll', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Peter I Island', 'Philippines', 'Pitcairn Islands', 'Poland', 'Portugal', 'Pridnestrovie (Transnistria)', 'Puerto Rico', 'Qatar', 'Queen Maud Land', 'Reunion', 'Romania', 'Ross Dependency', 'Russia', 'Rwanda', 'Saint Barthelemy', 'Saint Helena', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Martin', 'Saint Pierre and Miquelon', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe', 'Saudi Arabia', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia', 'Slovenia', 'Solomon Islands', 'Somalia', 'Somaliland', 'South Africa', 'South Georgia & South Sandwich Islands', 'South Ossetia', 'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Svalbard', 'Swaziland', 'Sweden', 'Switzerland', 'Syria', 'Tajikistan', 'Tanzania', 'Thailand', 'Timor-Leste (East Timor)', 'Togo', 'Tokelau', 'Tonga', 'Trinidad and Tobago', 'Tristan da Cunha', 'Tunisia', 'Turkey', 'Turkmenistan', 'Turks and Caicos Islands', 'Tuvalu', 'U.S. Virgin Islands', 'Uganda', 'Ukraine', 'United Arab Emirates', 'United Kingdom', 'United States', 'Uruguay', 'Uzbekistan', 'Vanuatu', 'Vatican City', 'Venezuela', 'Vietnam', 'Wake Island', 'Wallis and Futuna', 'Yemen', 'Zambia', 'Zimbabwe' );
 		// todo use WordCamp_Budgets::get_valid_countries_iso3166() instead. need to switch multi-event sponsors at same time.
@@ -1639,6 +1697,15 @@ class WordCamp_Post_Types_Plugin {
 	}
 
 	/**
+	 * Returns the default value for the state input when it's empty
+	 *
+	 * @return string
+	 */
+	protected function get_sponsor_info_state_default_value() {
+		return 'Not Applicable';
+	}
+
+	/**
 	 * Render the Invoice Sponsor metabox view
 	 *
 	 * @param WP_Post $sponsor
@@ -1649,7 +1716,7 @@ class WordCamp_Post_Types_Plugin {
 		$existing_invoices = get_posts( array(
 			'post_type'      => \WordCamp\Budgets\Sponsor_Invoices\POST_TYPE,
 			'post_status'    => 'any',
-			'posts_per_page' => - 1,
+			'posts_per_page' => -1,
 
 			'meta_query' => array(
 				array(
@@ -1681,23 +1748,26 @@ class WordCamp_Post_Types_Plugin {
 	 * Fired when a post is saved, makes sure additional metadata is also updated.
 	 */
 	function save_post_speaker( $post_id, $post ) {
-		if ( wp_is_post_revision( $post_id ) || $post->post_type != 'wcb_speaker' || ! current_user_can( 'edit_post', $post_id ) )
+		if ( wp_is_post_revision( $post_id ) || $post->post_type != 'wcb_speaker' || ! current_user_can( 'edit_post', $post_id ) ) {
 			return;
+		}
 
 		if ( isset( $_POST['wcpt-meta-speaker-info'] ) && wp_verify_nonce( $_POST['wcpt-meta-speaker-info'], 'edit-speaker-info' ) ) {
-			$email          = sanitize_text_field( $_POST['wcpt-gravatar-email'] );
+			$email = sanitize_text_field( $_POST['wcpt-gravatar-email'] );
 			$wporg_username = sanitize_text_field( $_POST['wcpt-wporg-username'] );
-			$wporg_user     = wcorg_get_user_by_canonical_names( $wporg_username );
+			$wporg_user = wcorg_get_user_by_canonical_names( $wporg_username );
 
-			if ( empty( $email ) )
+			if ( empty( $email ) ) {
 				delete_post_meta( $post_id, '_wcb_speaker_email' );
-			elseif ( $email && is_email( $email ) )
+			} elseif ( $email && is_email( $email ) ) {
 				update_post_meta( $post_id, '_wcb_speaker_email', $email );
+			}
 
-			if ( ! $wporg_user )
+			if ( ! $wporg_user ) {
 				delete_post_meta( $post_id, '_wcpt_user_id' );
-			else
+			} else {
 				update_post_meta( $post_id, '_wcpt_user_id', $wporg_user->ID );
+			}
 		}
 	}
 
@@ -1705,17 +1775,19 @@ class WordCamp_Post_Types_Plugin {
 	 * When an Organizer post is saved, update some meta data.
 	 */
 	function save_post_organizer( $post_id, $post ) {
-		if ( wp_is_post_revision( $post_id ) || $post->post_type != 'wcb_organizer' || ! current_user_can( 'edit_post', $post_id ) )
+		if ( wp_is_post_revision( $post_id ) || $post->post_type != 'wcb_organizer' || ! current_user_can( 'edit_post', $post_id ) ) {
 			return;
+		}
 
 		if ( isset( $_POST['wcpt-meta-organizer-info'] ) && wp_verify_nonce( $_POST['wcpt-meta-organizer-info'], 'edit-organizer-info' ) ) {
 			$wporg_username = sanitize_text_field( $_POST['wcpt-wporg-username'] );
 			$wporg_user = wcorg_get_user_by_canonical_names( $wporg_username );
 
-			if ( ! $wporg_user )
+			if ( ! $wporg_user ) {
 				delete_post_meta( $post_id, '_wcpt_user_id' );
-			else
+			} else {
 				update_post_meta( $post_id, '_wcpt_user_id', $wporg_user->ID );
+			}
 		}
 	}
 
@@ -1723,8 +1795,9 @@ class WordCamp_Post_Types_Plugin {
 	 * Fired when a post is saved, updates additional sessions metadada.
 	 */
 	function save_post_session( $post_id, $post ) {
-		if ( wp_is_post_revision( $post_id ) || $post->post_type != 'wcb_session' )
+		if ( wp_is_post_revision( $post_id ) || $post->post_type != 'wcb_session' ) {
 			return;
+		}
 
 		if ( isset( $_POST['wcpt-meta-speakers-list-nonce'] ) && wp_verify_nonce( $_POST['wcpt-meta-speakers-list-nonce'], 'edit-speakers-list' ) && current_user_can( 'edit_post', $post_id ) ) {
 
@@ -1746,8 +1819,9 @@ class WordCamp_Post_Types_Plugin {
 
 			// Update session type
 			$session_type = sanitize_text_field( $_POST['wcpt-session-type'] );
-			if ( ! in_array( $session_type, array( 'session', 'custom' ) ) )
+			if ( ! in_array( $session_type, array( 'session', 'custom' ) ) ) {
 				$session_type = 'session';
+			}
 
 			update_post_meta( $post_id, '_wcpt_session_type', $session_type );
 
@@ -1765,15 +1839,17 @@ class WordCamp_Post_Types_Plugin {
 		$speakers_list = get_post_meta( $post_id, '_wcb_session_speakers', true );
 		$speakers_list = explode( ',', $speakers_list );
 
-		if ( ! is_array( $speakers_list ) )
+		if ( ! is_array( $speakers_list ) ) {
 			$speakers_list = array();
+		}
 
 		$speaker_ids = array();
-		$speakers    = array_unique( array_map( 'trim', $speakers_list ) );
+		$speakers = array_unique( array_map( 'trim', $speakers_list ) );
 
 		foreach ( $speakers as $speaker_name ) {
-			if ( empty( $speaker_name ) )
+			if ( empty( $speaker_name ) ) {
 				continue;
+			}
 
 			/*
 			 * Look for speakers by their names.
@@ -1785,15 +1861,17 @@ class WordCamp_Post_Types_Plugin {
 			 * here to make it more forgiving.
 			 */
 			$speaker = get_page_by_title( $speaker_name, OBJECT, 'wcb_speaker' );
-			if ( $speaker )
+			if ( $speaker ) {
 				$speaker_ids[] = $speaker->ID;
+			}
 		}
 
 		// Add speaker IDs to post meta.
 		$speaker_ids = array_unique( $speaker_ids );
 		delete_post_meta( $post_id, '_wcpt_speaker_id' );
-		foreach ( $speaker_ids as $speaker_id )
+		foreach ( $speaker_ids as $speaker_id ) {
 			add_post_meta( $post_id, '_wcpt_speaker_id', $speaker_id );
+		}
 
 		// Set the speaker as the author of the session post, so the single
 		// view doesn't confuse users who see "posted by [organizer name]"
@@ -1802,10 +1880,10 @@ class WordCamp_Post_Types_Plugin {
 			$user = get_user_by( 'id', $wporg_user_id );
 
 			if ( $user ) {
-				remove_action( 'save_post', array( $this, 'save_post_session' ), 10, 2 );	// avoid infinite recursion
+				remove_action( 'save_post', array( $this, 'save_post_session' ), 10, 2 );    // avoid infinite recursion
 				wp_update_post( array(
 					'ID'          => $post_id,
-					'post_author' => $user->ID
+					'post_author' => $user->ID,
 				) );
 				add_action( 'save_post', array( $this, 'save_post_session' ), 10, 2 );
 
@@ -1824,21 +1902,25 @@ class WordCamp_Post_Types_Plugin {
 
 		if ( isset( $_POST['wcpt-meta-sponsor-info'] ) && wp_verify_nonce( $_POST['wcpt-meta-sponsor-info'], 'edit-sponsor-info' ) ) {
 			$text_values = array(
-				'company_name',	'first_name', 'last_name', 'email_address', 'phone_number', 'vat_number', 'twitter_handle',
-				'street_address1', 'street_address2', 'city', 'state', 'zip_code', 'country'
+				'company_name', 'first_name', 'last_name', 'email_address', 'phone_number', 'vat_number', 'twitter_handle',
+				'street_address1', 'street_address2', 'city', 'state', 'zip_code', 'country',
 			);
 
 			foreach ( $text_values as $id ) {
 				$values[ $id ] = sanitize_text_field( $_POST["_wcpt_sponsor_$id"] );
 			}
 
+			if ( empty( $values['state'] ) ) {
+				$values['state'] = $this->get_sponsor_info_state_default_value();
+			}
+
 			$values['website'] = esc_url_raw( $_POST['_wcpt_sponsor_website'] );
 			// TODO: maybe only allows links to home page, depending on outcome of http://make.wordpress.org/community/2013/12/31/irs-rules-for-corporate-sponsorship-of-wordcamp/
 
 			$values['first_name'] = ucfirst( $values['first_name'] );
-			$values['last_name' ] = ucfirst( $values['last_name' ] );
+			$values['last_name'] = ucfirst( $values['last_name'] );
 
-			foreach( $values as $id => $value ) {
+			foreach ( $values as $id => $value ) {
 				if ( empty( $value ) ) {
 					delete_post_meta( $post_id, "_wcpt_sponsor_$id" );
 				} else {
@@ -1854,137 +1936,137 @@ class WordCamp_Post_Types_Plugin {
 	function register_post_types() {
 		// Speaker post type labels.
 		$labels = array(
-			'name'                  => __( 'Speakers', 'wordcamporg' ),
-			'singular_name'         => __( 'Speaker', 'wordcamporg' ),
-			'add_new'               => __( 'Add New', 'wordcamporg' ),
-			'add_new_item'          => __( 'Create New Speaker', 'wordcamporg' ),
-			'edit'                  => __( 'Edit', 'wordcamporg' ),
-			'edit_item'             => __( 'Edit Speaker', 'wordcamporg' ),
-			'new_item'              => __( 'New Speaker', 'wordcamporg' ),
-			'view'                  => __( 'View Speaker', 'wordcamporg' ),
-			'view_item'             => __( 'View Speaker', 'wordcamporg' ),
-			'search_items'          => __( 'Search Speakers', 'wordcamporg' ),
-			'not_found'             => __( 'No speakers found', 'wordcamporg' ),
-			'not_found_in_trash'    => __( 'No speakers found in Trash', 'wordcamporg' ),
-			'parent_item_colon'     => __( 'Parent Speaker:', 'wordcamporg' ),
+			'name'               => __( 'Speakers', 'wordcamporg' ),
+			'singular_name'      => __( 'Speaker', 'wordcamporg' ),
+			'add_new'            => __( 'Add New', 'wordcamporg' ),
+			'add_new_item'       => __( 'Create New Speaker', 'wordcamporg' ),
+			'edit'               => __( 'Edit', 'wordcamporg' ),
+			'edit_item'          => __( 'Edit Speaker', 'wordcamporg' ),
+			'new_item'           => __( 'New Speaker', 'wordcamporg' ),
+			'view'               => __( 'View Speaker', 'wordcamporg' ),
+			'view_item'          => __( 'View Speaker', 'wordcamporg' ),
+			'search_items'       => __( 'Search Speakers', 'wordcamporg' ),
+			'not_found'          => __( 'No speakers found', 'wordcamporg' ),
+			'not_found_in_trash' => __( 'No speakers found in Trash', 'wordcamporg' ),
+			'parent_item_colon'  => __( 'Parent Speaker:', 'wordcamporg' ),
 		);
 
 		// Register speaker post type.
 		register_post_type( 'wcb_speaker', array(
-			'labels'            => $labels,
-			'rewrite'           => array( 'slug' => 'speaker', 'with_front' => true ),
-			'supports'          => array( 'title', 'editor', 'author', 'revisions', 'comments', 'custom-fields' ),
-			'menu_position'     => 20,
-			'public'            => true,
-			'show_ui'           => true,
-			'can_export'        => true,
-			'capability_type'   => 'post',
-			'hierarchical'      => false,
-			'query_var'         => true,
-			'menu_icon'         => 'dashicons-megaphone',
-			'show_in_rest'      => true,
-			'rest_base'         => 'speakers',
+			'labels'          => $labels,
+			'rewrite'         => array( 'slug' => 'speaker', 'with_front' => true ),
+			'supports'        => array( 'title', 'editor', 'author', 'revisions', 'comments', 'custom-fields' ),
+			'menu_position'   => 20,
+			'public'          => true,
+			'show_ui'         => true,
+			'can_export'      => true,
+			'capability_type' => 'post',
+			'hierarchical'    => false,
+			'query_var'       => true,
+			'menu_icon'       => 'dashicons-megaphone',
+			'show_in_rest'    => true,
+			'rest_base'       => 'speakers',
 		) );
 
 		// Session post type labels.
 		$labels = array(
-			'name'                  => __( 'Sessions', 'wordcamporg' ),
-			'singular_name'         => __( 'Session', 'wordcamporg' ),
-			'add_new'               => __( 'Add New', 'wordcamporg' ),
-			'add_new_item'          => __( 'Create New Session', 'wordcamporg' ),
-			'edit'                  => __( 'Edit', 'wordcamporg' ),
-			'edit_item'             => __( 'Edit Session', 'wordcamporg' ),
-			'new_item'              => __( 'New Session', 'wordcamporg' ),
-			'view'                  => __( 'View Session', 'wordcamporg' ),
-			'view_item'             => __( 'View Session', 'wordcamporg' ),
-			'search_items'          => __( 'Search Sessions', 'wordcamporg' ),
-			'not_found'             => __( 'No sessions found', 'wordcamporg' ),
-			'not_found_in_trash'    => __( 'No sessions found in Trash', 'wordcamporg' ),
-			'parent_item_colon'     => __( 'Parent Session:', 'wordcamporg' ),
+			'name'               => __( 'Sessions', 'wordcamporg' ),
+			'singular_name'      => __( 'Session', 'wordcamporg' ),
+			'add_new'            => __( 'Add New', 'wordcamporg' ),
+			'add_new_item'       => __( 'Create New Session', 'wordcamporg' ),
+			'edit'               => __( 'Edit', 'wordcamporg' ),
+			'edit_item'          => __( 'Edit Session', 'wordcamporg' ),
+			'new_item'           => __( 'New Session', 'wordcamporg' ),
+			'view'               => __( 'View Session', 'wordcamporg' ),
+			'view_item'          => __( 'View Session', 'wordcamporg' ),
+			'search_items'       => __( 'Search Sessions', 'wordcamporg' ),
+			'not_found'          => __( 'No sessions found', 'wordcamporg' ),
+			'not_found_in_trash' => __( 'No sessions found in Trash', 'wordcamporg' ),
+			'parent_item_colon'  => __( 'Parent Session:', 'wordcamporg' ),
 		);
 
 		// Register session post type.
 		register_post_type( 'wcb_session', array(
-			'labels'            => $labels,
-			'rewrite'           => array( 'slug' => 'session', 'with_front' => false ),
-			'supports'          => array( 'title', 'editor', 'author', 'revisions', 'thumbnail', 'custom-fields' ),
-			'menu_position'     => 21,
-			'public'            => true,
-			'show_ui'           => true,
-			'can_export'        => true,
-			'capability_type'   => 'post',
-			'hierarchical'      => false,
-			'query_var'         => true,
-			'menu_icon'         => 'dashicons-schedule',
-			'show_in_rest'      => true,
-			'rest_base'         => 'sessions',
+			'labels'          => $labels,
+			'rewrite'         => array( 'slug' => 'session', 'with_front' => false ),
+			'supports'        => array( 'title', 'editor', 'author', 'revisions', 'thumbnail', 'custom-fields' ),
+			'menu_position'   => 21,
+			'public'          => true,
+			'show_ui'         => true,
+			'can_export'      => true,
+			'capability_type' => 'post',
+			'hierarchical'    => false,
+			'query_var'       => true,
+			'menu_icon'       => 'dashicons-schedule',
+			'show_in_rest'    => true,
+			'rest_base'       => 'sessions',
 		) );
 
 		// Sponsor post type labels.
 		$labels = array(
-			'name'                  => __( 'Sponsors', 'wordcamporg' ),
-			'singular_name'         => __( 'Sponsor', 'wordcamporg' ),
-			'add_new'               => __( 'Add New', 'wordcamporg' ),
-			'add_new_item'          => __( 'Create New Sponsor', 'wordcamporg' ),
-			'edit'                  => __( 'Edit', 'wordcamporg' ),
-			'edit_item'             => __( 'Edit Sponsor', 'wordcamporg' ),
-			'new_item'              => __( 'New Sponsor', 'wordcamporg' ),
-			'view'                  => __( 'View Sponsor', 'wordcamporg' ),
-			'view_item'             => __( 'View Sponsor', 'wordcamporg' ),
-			'search_items'          => __( 'Search Sponsors', 'wordcamporg' ),
-			'not_found'             => __( 'No sponsors found', 'wordcamporg' ),
-			'not_found_in_trash'    => __( 'No sponsors found in Trash', 'wordcamporg' ),
-			'parent_item_colon'     => __( 'Parent Sponsor:', 'wordcamporg' ),
+			'name'               => __( 'Sponsors', 'wordcamporg' ),
+			'singular_name'      => __( 'Sponsor', 'wordcamporg' ),
+			'add_new'            => __( 'Add New', 'wordcamporg' ),
+			'add_new_item'       => __( 'Create New Sponsor', 'wordcamporg' ),
+			'edit'               => __( 'Edit', 'wordcamporg' ),
+			'edit_item'          => __( 'Edit Sponsor', 'wordcamporg' ),
+			'new_item'           => __( 'New Sponsor', 'wordcamporg' ),
+			'view'               => __( 'View Sponsor', 'wordcamporg' ),
+			'view_item'          => __( 'View Sponsor', 'wordcamporg' ),
+			'search_items'       => __( 'Search Sponsors', 'wordcamporg' ),
+			'not_found'          => __( 'No sponsors found', 'wordcamporg' ),
+			'not_found_in_trash' => __( 'No sponsors found in Trash', 'wordcamporg' ),
+			'parent_item_colon'  => __( 'Parent Sponsor:', 'wordcamporg' ),
 		);
 
 		// Register sponsor post type.
 		register_post_type( 'wcb_sponsor', array(
-			'labels'            => $labels,
-			'rewrite'           => array( 'slug' => 'sponsor', 'with_front' => false ),
-			'supports'          => array( 'title', 'editor', 'revisions', 'thumbnail', 'custom-fields' ),
-			'menu_position'     => 21,
-			'public'            => true,
-			'show_ui'           => true,
-			'can_export'        => true,
-			'capability_type'   => 'post',
-			'hierarchical'      => false,
-			'query_var'         => true,
-			'menu_icon'         => 'dashicons-heart',
-			'show_in_rest'      => true,
-			'rest_base'         => 'sponsors',
+			'labels'          => $labels,
+			'rewrite'         => array( 'slug' => 'sponsor', 'with_front' => false ),
+			'supports'        => array( 'title', 'editor', 'revisions', 'thumbnail', 'custom-fields' ),
+			'menu_position'   => 21,
+			'public'          => true,
+			'show_ui'         => true,
+			'can_export'      => true,
+			'capability_type' => 'post',
+			'hierarchical'    => false,
+			'query_var'       => true,
+			'menu_icon'       => 'dashicons-heart',
+			'show_in_rest'    => true,
+			'rest_base'       => 'sponsors',
 		) );
 
 		// Organizer post type labels.
 		$labels = array(
-			'name'                  => __( 'Organizers', 'wordcamporg' ),
-			'singular_name'         => __( 'Organizer', 'wordcamporg' ),
-			'add_new'               => __( 'Add New', 'wordcamporg' ),
-			'add_new_item'          => __( 'Create New Organizer', 'wordcamporg' ),
-			'edit'                  => __( 'Edit', 'wordcamporg' ),
-			'edit_item'             => __( 'Edit Organizer', 'wordcamporg' ),
-			'new_item'              => __( 'New Organizer', 'wordcamporg' ),
-			'view'                  => __( 'View Organizer', 'wordcamporg' ),
-			'view_item'             => __( 'View Organizer', 'wordcamporg' ),
-			'search_items'          => __( 'Search Organizers', 'wordcamporg' ),
-			'not_found'             => __( 'No organizers found', 'wordcamporg' ),
-			'not_found_in_trash'    => __( 'No organizers found in Trash', 'wordcamporg' ),
-			'parent_item_colon'     => __( 'Parent Organizer:', 'wordcamporg' ),
+			'name'               => __( 'Organizers', 'wordcamporg' ),
+			'singular_name'      => __( 'Organizer', 'wordcamporg' ),
+			'add_new'            => __( 'Add New', 'wordcamporg' ),
+			'add_new_item'       => __( 'Create New Organizer', 'wordcamporg' ),
+			'edit'               => __( 'Edit', 'wordcamporg' ),
+			'edit_item'          => __( 'Edit Organizer', 'wordcamporg' ),
+			'new_item'           => __( 'New Organizer', 'wordcamporg' ),
+			'view'               => __( 'View Organizer', 'wordcamporg' ),
+			'view_item'          => __( 'View Organizer', 'wordcamporg' ),
+			'search_items'       => __( 'Search Organizers', 'wordcamporg' ),
+			'not_found'          => __( 'No organizers found', 'wordcamporg' ),
+			'not_found_in_trash' => __( 'No organizers found in Trash', 'wordcamporg' ),
+			'parent_item_colon'  => __( 'Parent Organizer:', 'wordcamporg' ),
 		);
 
 		// Register organizer post type.
 		register_post_type( 'wcb_organizer', array(
-			'labels'            => $labels,
-			'rewrite'           => array( 'slug' => 'organizer', 'with_front' => false ),
-			'supports'          => array( 'title', 'editor', 'revisions' ),
-			'menu_position'     => 22,
-			'public'            => false,
-				// todo public or publicly_queryable = true, so consistent with others? at the very least set show_in_json = true
-			'show_ui'           => true,
-			'can_export'        => true,
-			'capability_type'   => 'post',
-			'hierarchical'      => false,
-			'query_var'         => true,
-			'menu_icon'         => 'dashicons-groups',
+			'labels'          => $labels,
+			'rewrite'         => array( 'slug' => 'organizer', 'with_front' => false ),
+			'supports'        => array( 'title', 'editor', 'revisions' ),
+			'menu_position'   => 22,
+			'public'          => false,
+			// todo public or publicly_queryable = true, so consistent with others? at the very least set show_in_json = true
+			'show_ui'         => true,
+			'can_export'      => true,
+			'capability_type' => 'post',
+			'hierarchical'    => false,
+			'query_var'       => true,
+			'menu_icon'       => 'dashicons-groups',
 		) );
 	}
 
@@ -1994,15 +2076,15 @@ class WordCamp_Post_Types_Plugin {
 	function register_taxonomies() {
 		// Labels for tracks.
 		$labels = array(
-			'name'              => __( 'Tracks', 'wordcamporg' ),
-			'singular_name'     => __( 'Track', 'wordcamporg' ),
-			'search_items'      => __( 'Search Tracks', 'wordcamporg' ),
-			'popular_items'     => __( 'Popular Tracks','wordcamporg' ),
-			'all_items'         => __( 'All Tracks', 'wordcamporg' ),
-			'edit_item'         => __( 'Edit Track', 'wordcamporg' ),
-			'update_item'       => __( 'Update Track', 'wordcamporg' ),
-			'add_new_item'      => __( 'Add Track', 'wordcamporg' ),
-			'new_item_name'     => __( 'New Track', 'wordcamporg' ),
+			'name'          => __( 'Tracks', 'wordcamporg' ),
+			'singular_name' => __( 'Track', 'wordcamporg' ),
+			'search_items'  => __( 'Search Tracks', 'wordcamporg' ),
+			'popular_items' => __( 'Popular Tracks', 'wordcamporg' ),
+			'all_items'     => __( 'All Tracks', 'wordcamporg' ),
+			'edit_item'     => __( 'Edit Track', 'wordcamporg' ),
+			'update_item'   => __( 'Update Track', 'wordcamporg' ),
+			'add_new_item'  => __( 'Add Track', 'wordcamporg' ),
+			'new_item_name' => __( 'New Track', 'wordcamporg' ),
 		);
 
 		// Register the Tracks taxonomy.
@@ -2019,15 +2101,15 @@ class WordCamp_Post_Types_Plugin {
 
 		// Labels for sponsor levels.
 		$labels = array(
-			'name'              => __( 'Sponsor Levels', 'wordcamporg' ),
-			'singular_name'     => __( 'Sponsor Level', 'wordcamporg' ),
-			'search_items'      => __( 'Search Sponsor Levels', 'wordcamporg' ),
-			'popular_items'     => __( 'Popular Sponsor Levels', 'wordcamporg' ),
-			'all_items'         => __( 'All Sponsor Levels', 'wordcamporg' ),
-			'edit_item'         => __( 'Edit Sponsor Level', 'wordcamporg' ),
-			'update_item'       => __( 'Update Sponsor Level', 'wordcamporg' ),
-			'add_new_item'      => __( 'Add Sponsor Level', 'wordcamporg' ),
-			'new_item_name'     => __( 'New Sponsor Level', 'wordcamporg' ),
+			'name'          => __( 'Sponsor Levels', 'wordcamporg' ),
+			'singular_name' => __( 'Sponsor Level', 'wordcamporg' ),
+			'search_items'  => __( 'Search Sponsor Levels', 'wordcamporg' ),
+			'popular_items' => __( 'Popular Sponsor Levels', 'wordcamporg' ),
+			'all_items'     => __( 'All Sponsor Levels', 'wordcamporg' ),
+			'edit_item'     => __( 'Edit Sponsor Level', 'wordcamporg' ),
+			'update_item'   => __( 'Update Sponsor Level', 'wordcamporg' ),
+			'add_new_item'  => __( 'Add Sponsor Level', 'wordcamporg' ),
+			'new_item_name' => __( 'New Sponsor Level', 'wordcamporg' ),
 		);
 
 		// Register sponsor level taxonomy
@@ -2044,15 +2126,15 @@ class WordCamp_Post_Types_Plugin {
 
 		// Labels for organizer teams.
 		$labels = array(
-			'name'          => __( 'Teams',         'wordcamporg' ),
-			'singular_name' => __( 'Team',          'wordcamporg' ),
-			'search_items'  => __( 'Search Teams',  'wordcamporg' ),
+			'name'          => __( 'Teams', 'wordcamporg' ),
+			'singular_name' => __( 'Team', 'wordcamporg' ),
+			'search_items'  => __( 'Search Teams', 'wordcamporg' ),
 			'popular_items' => __( 'Popular Teams', 'wordcamporg' ),
-			'all_items'     => __( 'All Teams',     'wordcamporg' ),
-			'edit_item'     => __( 'Edit Team',     'wordcamporg' ),
-			'update_item'   => __( 'Update Team',   'wordcamporg' ),
-			'add_new_item'  => __( 'Add Team',      'wordcamporg' ),
-			'new_item_name' => __( 'New Team',      'wordcamporg' ),
+			'all_items'     => __( 'All Teams', 'wordcamporg' ),
+			'edit_item'     => __( 'Edit Team', 'wordcamporg' ),
+			'update_item'   => __( 'Update Team', 'wordcamporg' ),
+			'add_new_item'  => __( 'Add Team', 'wordcamporg' ),
+			'new_item_name' => __( 'New Team', 'wordcamporg' ),
 		);
 
 		// Register organizer teams taxonomy
@@ -2071,15 +2153,15 @@ class WordCamp_Post_Types_Plugin {
 
 		// Labels for speaker groups.
 		$labels = array(
-			'name'          => __( 'Groups',         'wordcamporg' ),
-			'singular_name' => __( 'Group',          'wordcamporg' ),
-			'search_items'  => __( 'Search Groups',  'wordcamporg' ),
+			'name'          => __( 'Groups', 'wordcamporg' ),
+			'singular_name' => __( 'Group', 'wordcamporg' ),
+			'search_items'  => __( 'Search Groups', 'wordcamporg' ),
 			'popular_items' => __( 'Popular Groups', 'wordcamporg' ),
-			'all_items'     => __( 'All Groups',     'wordcamporg' ),
-			'edit_item'     => __( 'Edit Group',     'wordcamporg' ),
-			'update_item'   => __( 'Update Group',   'wordcamporg' ),
-			'add_new_item'  => __( 'Add Group',      'wordcamporg' ),
-			'new_item_name' => __( 'New Group',      'wordcamporg' ),
+			'all_items'     => __( 'All Groups', 'wordcamporg' ),
+			'edit_item'     => __( 'Edit Group', 'wordcamporg' ),
+			'update_item'   => __( 'Update Group', 'wordcamporg' ),
+			'add_new_item'  => __( 'Add Group', 'wordcamporg' ),
+			'new_item_name' => __( 'New Group', 'wordcamporg' ),
 		);
 
 		// Register speaker groups taxonomy
@@ -2105,7 +2187,7 @@ class WordCamp_Post_Types_Plugin {
 	 * override.
 	 *
 	 * @uses current_filter()
-	 * @see __construct()
+	 * @see  __construct()
 	 */
 	function manage_post_types_columns( $columns ) {
 		$current_filter = current_filter();
@@ -2113,17 +2195,17 @@ class WordCamp_Post_Types_Plugin {
 		switch ( $current_filter ) {
 			case 'manage_wcb_organizer_posts_columns':
 				// Insert at offset 1, that's right after the checkbox.
-				$columns = array_slice( $columns, 0, 1, true ) + array( 'wcb_organizer_avatar' => __( 'Avatar', 'wordcamporg' ) )   + array_slice( $columns, 1, null, true );
+				$columns = array_slice( $columns, 0, 1, true ) + array( 'wcb_organizer_avatar' => __( 'Avatar', 'wordcamporg' ) ) + array_slice( $columns, 1, null, true );
 				break;
 
 			case 'manage_wcb_speaker_posts_columns':
 				$original_columns = $columns;
 
-				$columns =  array_slice( $original_columns, 0, 1, true );
+				$columns = array_slice( $original_columns, 0, 1, true );
 				$columns += array( 'wcb_speaker_avatar' => __( 'Avatar', 'wordcamporg' ) );
 				$columns += array_slice( $original_columns, 1, 1, true );
 				$columns += array(
-					'wcb_speaker_email'          => __( 'Gravatar Email',         'wordcamporg' ),
+					'wcb_speaker_email'          => __( 'Gravatar Email', 'wordcamporg' ),
 					'wcb_speaker_wporg_username' => __( 'WordPress.org Username', 'wordcamporg' ),
 				);
 				$columns += array_slice( $original_columns, 2, null, true );
@@ -2132,7 +2214,7 @@ class WordCamp_Post_Types_Plugin {
 
 			case 'manage_wcb_session_posts_columns':
 				$columns = array_slice( $columns, 0, 2, true ) + array( 'wcb_session_speakers' => __( 'Speakers', 'wordcamporg' ) ) + array_slice( $columns, 2, null, true );
-				$columns = array_slice( $columns, 0, 1, true ) + array( 'wcb_session_time'     => __( 'Time', 'wordcamporg' ) )     + array_slice( $columns, 1, null, true );
+				$columns = array_slice( $columns, 0, 1, true ) + array( 'wcb_session_time' => __( 'Time', 'wordcamporg' ) ) + array_slice( $columns, 1, null, true );
 				break;
 			default:
 		}
@@ -2162,7 +2244,7 @@ class WordCamp_Post_Types_Plugin {
 				break;
 
 			case 'wcb_speaker_wporg_username':
-				$user_id    = get_post_meta( get_the_ID(), '_wcpt_user_id', true );
+				$user_id = get_post_meta( get_the_ID(), '_wcpt_user_id', true );
 				$wporg_user = get_user_by( 'id', $user_id );
 
 				if ( $wporg_user ) {
@@ -2176,9 +2258,9 @@ class WordCamp_Post_Types_Plugin {
 				$speakers_ids = array_map( 'absint', (array) get_post_meta( $post_id, '_wcpt_speaker_id' ) );
 				if ( ! empty( $speakers_ids ) ) {
 					$speakers = get_posts( array(
-						'post_type' => 'wcb_speaker',
+						'post_type'      => 'wcb_speaker',
 						'posts_per_page' => -1,
-						'post__in' => $speakers_ids,
+						'post__in'       => $speakers_ids,
 					) );
 				}
 
@@ -2206,8 +2288,9 @@ class WordCamp_Post_Types_Plugin {
 	function manage_sortable_columns( $sortable ) {
 		$current_filter = current_filter();
 
-		if ( 'manage_edit-wcb_session_sortable_columns' == $current_filter )
+		if ( 'manage_edit-wcb_session_sortable_columns' == $current_filter ) {
 			$sortable['wcb_session_time'] = '_wcpt_session_time';
+		}
 
 		return $sortable;
 	}
@@ -2218,17 +2301,20 @@ class WordCamp_Post_Types_Plugin {
 	function display_post_states( $states ) {
 		$post = get_post();
 
-		if ( 'wcb_session' != $post->post_type )
+		if ( 'wcb_session' != $post->post_type ) {
 			return $states;
+		}
 
 		$session_type = get_post_meta( $post->ID, '_wcpt_session_type', true );
-		if ( ! in_array( $session_type, array( 'session', 'custom' ) ) )
+		if ( ! in_array( $session_type, array( 'session', 'custom' ) ) ) {
 			$session_type = 'session';
+		}
 
-		if ( 'session' == $session_type )
+		if ( 'session' == $session_type ) {
 			$states['wcpt-session-type'] = __( 'Session', 'wordcamporg' );
-		elseif ( 'custom' == $session_type )
+		} elseif ( 'custom' == $session_type ) {
 			$states['wcpt-session-type'] = __( 'Custom', 'wordcamporg' );
+		}
 
 		return $states;
 	}
@@ -2239,9 +2325,9 @@ class WordCamp_Post_Types_Plugin {
 	function register_widgets() {
 		require_once( 'inc/widgets.php' );
 
-		register_widget( 'WCB_Widget_Sponsors'    );
-		register_widget( 'WCPT_Widget_Speakers'   );
-		register_widget( 'WCPT_Widget_Sessions'   );
+		register_widget( 'WCB_Widget_Sponsors' );
+		register_widget( 'WCPT_Widget_Speakers' );
+		register_widget( 'WCPT_Widget_Sessions' );
 		register_widget( 'WCPT_Widget_Organizers' );
 	}
 
@@ -2257,7 +2343,7 @@ class WordCamp_Post_Types_Plugin {
 				continue;
 			}
 
-			$num_posts        = wp_count_posts( $post_type );
+			$num_posts = wp_count_posts( $post_type );
 			$post_type_object = get_post_type_object( $post_type );
 
 			if ( $num_posts && $num_posts->publish ) {
@@ -2292,12 +2378,14 @@ class WordCamp_Post_Types_Plugin {
 	 * Comments and pings on speakers closed by default.
 	 *
 	 * @param string $status Default comment status.
+	 *
 	 * @return string Resulting status.
 	 */
 	public function default_comment_ping_status( $status ) {
 		$screen = get_current_screen();
-		if ( ! empty( $screen->post_type ) && $screen->post_type == 'wcb_speaker' )
+		if ( ! empty( $screen->post_type ) && $screen->post_type == 'wcb_speaker' ) {
 			$status = 'closed';
+		}
 
 		return $status;
 	}
