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 );
|
|
}
|