File: /var/www/vfconf/wp-content/plugins/gutentor/includes/admin/settings/class-admin-settings.php
<?php
/**
* Do things related with Gutentor settings
*
* @since 3.0.3
*/
if ( ! class_exists( 'Gutentor_Admin_Settings' ) ) {
/**
* Class Gutentor_Admin_Settings.
*/
class Gutentor_Admin_Settings {
protected static $page_slug = 'gutentor-settings';
public function __construct() {
add_action( 'admin_menu', array( __CLASS__, 'admin_pages' ) );
add_action( 'admin_init', array( $this, 'depreciated_settings' ) );
add_filter( 'register_post_type_args', array( $this, 'enable_rest_api' ), 20, 2 );
add_filter( 'use_block_editor_for_post_type', array( $this, 'enable_gutenberg_post_type' ), 999, 2 );
add_action( 'init', array( $this, 'add_page_templates_in_post_types' ), 999 );
}
/**
* Admin Page Menu and submenu page
*
* @since 3.0.3
*/
public static function admin_pages() {
add_submenu_page(
'gutentor',
esc_html__( 'Settings', 'gutentor' ),
esc_html__( 'Settings', 'gutentor' ),
'manage_options',
'gutentor-settings',
array( __CLASS__, 'gutentor_settings_template' )
);
}
/**
* Render Settings Template
*
* @since 3.0.3
*/
public static function gutentor_settings_template() {
require_once GUTENTOR_PATH . 'includes/admin/templates/settings.php';
}
/**
* All existing Settings
* Convert in just one setting
*
* @since 3.1.2
*/
public function depreciated_settings() {
$g_options = gutentor_get_options();
if ( isset( $g_options['options_v_0'] ) ) {
return false;
}
$gutentor_get_options = array();
/*Typography*/
$global_typography = array(
'h1',
'h2',
'h3',
'h4',
'h5',
'h6',
'body',
'button',
);
foreach ( $global_typography as $gt ) {
$key = 'gutentor-gt-' . esc_attr( $gt );
$gutentor_get_options[ $key ] = gutentor_get_options( $key );
}
/*Global Color*/
$global_color = array(
'btn-txt',
'btn-bg',
'heading',
'body',
'link',
'cat-txt-default',
'cat-bg-default',
);
foreach ( $global_color as $gc ) {
$key = 'gc-' . esc_attr( $gc );
$gutentor_get_options[ $key ] = gutentor_get_options( $key );
}
/*Global Width*/
$global_width = array(
'mobile',
'tablet',
'desktop',
'large',
);
foreach ( $global_width as $gw ) {
$key = 'gutentor-gw-' . esc_attr( $gw );
$gutentor_get_options[ $key ] = gutentor_get_options( $key );
}
/*post format*/
$post_formats = gutentor_get_post_formats();
if ( $post_formats && is_array( $post_formats ) ) {
foreach ( $post_formats as $post_format ) {
$key = 'gutentor-pf-' . esc_attr( $post_format );
$gutentor_get_options[ $key ] = gutentor_get_options( $key );
}
}
$other_options = array(
'gutentor_disable_wide_width_editor',
'gutentor_map_api',
'gutentor_font_awesome_version',
'gutentor_tax_term_color',
'gutentor_tax_term_image',
'gutentor_dynamic_style_location',
'gutentor_color_palatte_options',
'gutentor_color_palatte',
'gutentor_gt_apply_options',
);
foreach ( $other_options as $key ) {
$gutentor_get_options[ $key ] = gutentor_get_options( $key );
}
/*Enabled Disable Blocks*/
$gutentor_get_options['_GUTENTOR_BLOCKS'] = gutentor_get_options( '_GUTENTOR_BLOCKS' );
/*Gutentor color palatte*/
$gutentor_get_options['gutentor_color_palatte'] = gutentor_get_options( 'gutentor_color_palatte' );
foreach ( $gutentor_get_options as $key => $value ) {
delete_option( $key );
if ( 'gutentor_map_api' == $key ) {
$key = 'map-api';
} elseif ( 'gutentor_disable_wide_width_editor' == $key ) {
$key = 'wide-width-editor';
} elseif ( 'gutentor_tax_term_color' == $key && $gutentor_get_options[ $key ] ) {
$key = 'tax-in-color';
$value = array(
'category',
'post_tag',
'product_cat',
'product_tag',
'download_category',
'download_tag',
);
} elseif ( 'gutentor_tax_term_image' == $key && $gutentor_get_options[ $key ] ) {
$key = 'tax-in-image';
$value = array(
'category',
'post_tag',
'product_cat',
'product_tag',
'download_category',
'download_tag',
);
} elseif ( 'gutentor_dynamic_style_location' == $key ) {
$key = 'dynamic-res-location';
} elseif ( 'gutentor_gt_apply_options' == $key ) {
$key = 'typo-apply-options';
} elseif ( 'gutentor_font_awesome_version' == $key ) {
$key = 'fa-version';
} elseif ( 'gutentor_color_palatte_options' == $key ) {
$key = 'color-palette-options';
} elseif ( 'gutentor_color_palatte' == $key ) {
$key = 'color-palettes';
} elseif ( '_GUTENTOR_BLOCKS' == $key ) {
$key = 'off-blocks';
} elseif ( strpos( $key, 'gutentor-pf-' ) !== false ) {
$key = str_replace( 'gutentor-pf-', 'pf-', $key );
} elseif ( strpos( $key, 'gutentor-gt-' ) !== false ) {
$key = str_replace( 'gutentor-gt-', 'gt-', $key );
} elseif ( strpos( $key, 'gutentor-gw-' ) !== false ) {
$key = str_replace( 'gutentor-gw-', 'gw-', $key );
} elseif ( strpos( $key, 'gutentor-gc-' ) !== false ) {
$key = str_replace( 'gutentor-gc-', 'gc-', $key );
}
$g_options[ $key ] = $value;
}
if ( isset( $g_options['gutentor_enable_editor_in_pt'] ) ) {
$g_options['editor-in-pt'] = $g_options['gutentor_enable_editor_in_pt'];
unset( $g_options['gutentor_enable_editor_in_pt'] );
}
if ( isset( $g_options['gutentor_enable_page_templates_in_pt'] ) ) {
$g_options['page-templates-in-pt'] = $g_options['gutentor_enable_page_templates_in_pt'];
unset( $g_options['gutentor_enable_page_templates_in_pt'] );
}
if ( isset( $g_options['gutentor_enable_import_block'] ) ) {
if ( $g_options['gutentor_enable_import_block'] ) {
$g_options['enable-import-block'] = $g_options['gutentor_enable_import_block'];
} else {
$g_options['enable-import-block'] = true;
}
unset( $g_options['gutentor_enable_import_block'] );
}
if ( isset( $g_options['gutentor_enable_export_block'] ) ) {
if ( $g_options['gutentor_enable_export_block'] ) {
$g_options['enable-export-block'] = $g_options['gutentor_enable_export_block'];
} else {
$g_options['enable-export-block'] = true;
}
unset( $g_options['gutentor_enable_export_block'] );
}
if ( isset( $g_options['resource_load'] ) ) {
$g_options['resource-load'] = $g_options['resource_load'];
unset( $g_options['resource_load'] );
}
if ( isset( $g_options['gutentor_enable_edd_demo_url'] ) ) {
$g_options['edd-demo-url'] = $g_options['gutentor_enable_edd_demo_url'];
unset( $g_options['gutentor_enable_edd_demo_url'] );
}
$g_options['options_v_0'] = true;
update_option( 'gutentor_settings_options', $g_options );
}
/**
* Enable rest api post types
*
* @since 3.0.3
*/
public static function enable_rest_api( $args, $post_type ) {
$gutentor_settings = gutentor_get_options();
if ( isset( $gutentor_settings['editor-in-pt'] ) ) {
$gutenberg_enable_post_types = $gutentor_settings['editor-in-pt'];
if ( is_array( $gutenberg_enable_post_types ) &&
in_array( $post_type, $gutenberg_enable_post_types )
) {
$args['show_in_rest'] = true;
}
}
return $args;
}
/**
* Enable Gutenberg Editor in Post Types
*
* @since 3.0.3
*/
public static function enable_gutenberg_post_type( $can_edit, $post_type ) {
$gutentor_settings = gutentor_get_options();
if ( isset( $gutentor_settings['editor-in-pt'] ) ) {
$gutenberg_enable_post_types = $gutentor_settings['editor-in-pt'];
if ( is_array( $gutenberg_enable_post_types ) &&
in_array( $post_type, $gutenberg_enable_post_types ) ) {
return true;
}
}
return $can_edit;
}
/**
* How to add Page Templates to Post or Custom Post Types
* https://www.gutentor.com/documentation/article/how-to-add-page-templates-to-post-or-custom-post-types/
*
* @since 3.0.3
*/
public function add_page_templates_in_post_types() {
$pts = array();
$pts[] = 'page';
$gutentor_settings = gutentor_get_options();
if ( isset( $gutentor_settings['page-templates-in-pt'] ) ) {
$pt = maybe_unserialize( $gutentor_settings['page-templates-in-pt'] );
if ( is_array( $pt ) && ! empty( $pt ) ) {
foreach ( $pt as $p ) {
$pts[] = $p;
}
}
}
if ( ! is_array( $pts ) ) {
return;
}
foreach ( $pts as $p ) {
add_filter( 'theme_' . $p . '_templates', array( gutentor_hooks(), 'gutentor_add_page_template' ) );
}
if ( in_array( 'page', $pts ) ) {
add_filter( 'page_template', array( gutentor_hooks(), 'gutentor_redirect_page_template' ), 999 );
}
if ( count( array_diff( $pts, array( 'page' ) ) ) > 0 ) {
add_filter( 'single_template', array( gutentor_hooks(), 'gutentor_redirect_page_template' ), 999 );
}
}
}
}
new Gutentor_Admin_Settings();