1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
<?php if ( ! defined( 'ABSPATH' ) ) { die( '-1' ); } /** * @param $post * @return bool */ function vcv_disable_gutenberg_for_classic_editor( $post ) { return false; }
/** * @param \Vc_Settings $settings */ function vc_gutenberg_add_settings( $settings ) { global $wp_version; if ( function_exists( 'the_gutenberg_project' ) || version_compare( $wp_version, '4.9.8', '>' ) ) { $settings->addField( 'general', esc_html__( 'Disable Gutenberg Editor', 'js_composer' ), 'gutenberg_disable', 'vc_gutenberg_sanitize_disable_callback', 'vc_gutenberg_disable_render_callback' ); } }
/** * @param $rules * * @return mixed */ function vc_gutenberg_sanitize_disable_callback( $rules ) { return (bool) $rules; }
/** * Not responsive checkbox callback function */ function vc_gutenberg_disable_render_callback() { $checked = ( $checked = get_option( 'wpb_js_gutenberg_disable' ) ) ? $checked : false; ?> <label> <input type="checkbox"<?php echo esc_attr( $checked ) ? ' checked' : ''; ?> value="1" name="<?php echo 'wpb_js_gutenberg_disable' ?>"> <?php esc_html_e( 'Disable', 'js_composer' ) ?> </label><br/> <p class="description indicator-hint"><?php esc_html_e( 'Disable Gutenberg Editor.', 'js_composer' ); ?></p> <?php }
/** * @param $result * @param $postType * @return bool */ function vc_gutenberg_check_disabled( $result, $postType ) { global $pagenow; if ( 'post.php' === $pagenow || 'post-new.php' === $pagenow ) { // we are in single post type editing if ( isset( $_GET['classic-editor'] ) && ! isset( $_GET['classic-editor__forget'] ) ) { return false; } if ( isset( $_GET['classic-editor__forget'] ) ) { return true; } if ( 'wpb_gutenberg_param' === $postType ) { return true; } if ( ! isset( $_GET['vcv-gutenberg-editor'] ) && ( get_option( 'wpb_js_gutenberg_disable' ) || vc_is_wpb_content() || isset( $_GET['classic-editor'] ) ) ) { return false; } }
return $result; }
/** * @param $result * @param $postType * @return bool */ function vc_gutenberg_check_disabled_regular( $editors, $postType ) { if ( 'wpb_gutenberg_param' === $postType ) { $editors['gutenberg_editor'] = false; } if ( ! isset( $_GET['vcv-gutenberg-editor'] ) && ( get_option( 'wpb_js_gutenberg_disable' ) || vc_is_wpb_content() || isset( $_GET['classic-editor'] ) ) ) { $editors['gutenberg_editor'] = false; $editors['classic_editor'] = false; }
return $editors; }
function vc_classic_editor_post_states( $state ) { if ( vc_is_wpb_content() ) { unset( $state['classic-editor-plugin'] ); }
return $state; }
/** * @return bool */ function vc_is_wpb_content() { $post = get_post(); if ( ! empty( $post ) && isset( $post->post_content ) && preg_match( '/\[vc_row/', $post->post_content ) ) { return true; }
return false; }
function vc_gutenberg_map() { global $wp_version; if ( function_exists( 'the_gutenberg_project' ) || version_compare( $wp_version, '4.9.8', '>' ) ) { vc_lean_map( 'vc_gutenberg', null, dirname( __FILE__ ) . '/shortcode-vc-gutenberg.php' ); } }
add_filter( 'classic_editor_enabled_editors_for_post', 'vc_gutenberg_check_disabled_regular', 10, 2 ); add_filter( 'use_block_editor_for_post_type', 'vc_gutenberg_check_disabled', 10, 2 ); add_filter( 'display_post_states', 'vc_classic_editor_post_states', 11, 2 ); add_action( 'vc_settings_tab-general', 'vc_gutenberg_add_settings' ); add_action( 'init', 'vc_gutenberg_map' );
/** @see include/params/gutenberg/class-vc-gutenberg-param.php */ require_once vc_path_dir( 'PARAMS_DIR', 'gutenberg/class-vc-gutenberg-param.php' ); new Vc_Gutenberg_Param();
|