123 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| defined( 'WPINC' ) or die;
 | |
| 
 | |
| add_action( 'admin_init', 'generate_blog_update_visibility_settings' );
 | |
| /**
 | |
|  * Migrates our old Blog settings so we can use checkboxes instead.
 | |
|  *
 | |
|  * @since 1.5
 | |
|  */
 | |
| function generate_blog_update_visibility_settings() {
 | |
| 	// Get our migration settings
 | |
| 	$settings = get_option( 'generate_migration_settings', array() );
 | |
| 
 | |
| 	// If we've already ran this function, bail
 | |
| 	if ( isset( $settings[ 'blog_visibility_updated' ] ) && 'true' == $settings[ 'blog_visibility_updated' ] ) {
 | |
| 		return;
 | |
| 	}
 | |
| 
 | |
| 	// A lot of the defaults changed, so lets put the old defaults here
 | |
| 	$defaults = array(
 | |
| 		'masonry' => 'false',
 | |
| 		'masonry_width' => 'width2',
 | |
| 		'masonry_most_recent_width' => 'width4',
 | |
| 		'post_image' => 'true',
 | |
| 		'date' => 'true',
 | |
| 		'author' => 'true',
 | |
| 		'categories' => 'true',
 | |
| 		'tags' => 'true',
 | |
| 		'comments' => 'true',
 | |
| 	);
 | |
| 
 | |
| 	// Get our spacing settings
 | |
| 	$blog_settings = wp_parse_args(
 | |
| 		get_option( 'generate_blog_settings', array() ),
 | |
| 		$defaults
 | |
| 	);
 | |
| 
 | |
| 	$new_settings = array();
 | |
| 
 | |
| 	// These options use to be a select input with false + true values
 | |
| 	// This will make the false values empty so the options can be checkboxes
 | |
| 	$keys = array( 'date', 'author', 'categories', 'tags', 'comments', 'masonry', 'post_image' );
 | |
| 	foreach ( $keys as $key ) {
 | |
| 		if ( is_string( $blog_settings[ $key ] ) ) {
 | |
| 			if ( 'false' == $blog_settings[ $key ] ) {
 | |
| 				$new_settings[ $key ] = false;
 | |
| 			} elseif ( 'true' == $blog_settings[ $key ] ) {
 | |
| 				$new_settings[ $key ] = true;
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	// Set the single post meta options to whatever the blog options are
 | |
| 	$new_settings[ 'single_date' ] = isset( $new_settings[ 'date' ] ) ? $new_settings[ 'date' ] : true;
 | |
| 	$new_settings[ 'single_author' ] = isset( $new_settings[ 'author' ] ) ? $new_settings[ 'author' ] : true;
 | |
| 	$new_settings[ 'single_categories' ] = isset( $new_settings[ 'categories' ] ) ? $new_settings[ 'categories' ] : true;
 | |
| 	$new_settings[ 'single_tags' ] = isset( $new_settings[ 'tags' ] ) ? $new_settings[ 'tags' ] : true;
 | |
| 
 | |
| 	if ( isset( $new_settings[ 'masonry' ] ) && $new_settings[ 'masonry' ] ) {
 | |
| 		$new_settings[ 'column_layout' ] = true;
 | |
| 		$new_settings[ 'infinite_scroll' ] = true;
 | |
| 		$new_settings[ 'infinite_scroll_button' ] = true;
 | |
| 
 | |
| 		if ( 'width2' == $blog_settings['masonry_width'] ) {
 | |
| 			$new_settings[ 'columns' ] = '33';
 | |
| 		}
 | |
| 
 | |
| 		if ( 'width4' == $blog_settings['masonry_width'] ) {
 | |
| 			$new_settings[ 'columns' ] = '50';
 | |
| 		}
 | |
| 
 | |
| 		if ( 'width6' == $blog_settings['masonry_width'] ) {
 | |
| 			$new_settings[ 'columns' ] = '100';
 | |
| 		}
 | |
| 
 | |
| 		if ( 'width2' == $blog_settings[ 'masonry_width' ] ) {
 | |
| 			if ( 'width2' !== $blog_settings[ 'masonry_most_recent_width' ] ) {
 | |
| 				$new_settings[ 'featured_column' ] = true;
 | |
| 			} else {
 | |
| 				$new_settings[ 'featured_column' ] = false;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		if ( 'width4' == $blog_settings[ 'masonry_width' ] ) {
 | |
| 			if ( 'width6' == $blog_settings[ 'masonry_most_recent_width' ] ) {
 | |
| 				$new_settings[ 'featured_column' ] = true;
 | |
| 			} else {
 | |
| 				$new_settings[ 'featured_column' ] = false;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		if ( 'width6' == $blog_settings[ 'masonry_width' ] ) {
 | |
| 			$new_settings[ 'featured_column' ] = false;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	if ( function_exists( 'generate_page_header_get_defaults' ) ) {
 | |
| 		$page_header_settings = wp_parse_args(
 | |
| 			get_option( 'generate_page_header_settings', array() ),
 | |
| 			generate_page_header_get_defaults()
 | |
| 		);
 | |
| 
 | |
| 		if ( 'hide' == $page_header_settings[ 'post_header_position' ] ) {
 | |
| 			$new_settings[ 'single_post_image' ] = false;
 | |
| 		} else {
 | |
| 			$new_settings[ 'single_post_image_position' ] = $page_header_settings[ 'post_header_position' ];
 | |
| 		}
 | |
| 
 | |
| 		$new_settings[ 'page_post_image_position' ] = $page_header_settings[ 'page_header_position' ];
 | |
| 	}
 | |
| 
 | |
| 	unset( $blog_settings['masonry_width'] );
 | |
| 	unset( $blog_settings['masonry_most_recent_width'] );
 | |
| 
 | |
| 	$update_settings = wp_parse_args( $new_settings, $blog_settings );
 | |
| 	update_option( 'generate_blog_settings', $update_settings );
 | |
| 
 | |
| 	// Update our migration option so we don't need to run this again
 | |
| 	$updated[ 'blog_visibility_updated' ] = 'true';
 | |
| 	$migration_settings = wp_parse_args( $updated, $settings );
 | |
| 	update_option( 'generate_migration_settings', $migration_settings );
 | |
| }
 |