__( 'Enable Widgets screen and Legacy Widgets block', 'gutenberg' ),
'id' => 'gutenberg-widget-experiments',
)
);
add_settings_field(
'gutenberg-block-directory',
__( 'Block Directory', 'gutenberg' ),
'gutenberg_display_experiment_field',
'gutenberg-experiments',
'gutenberg_experiments_section',
array(
'label' => __( 'Enable block directory search', 'gutenberg' ),
'id' => 'gutenberg-block-directory',
)
);
add_settings_field(
'gutenberg-full-site-editing',
__( 'Full Site Editing', 'gutenberg' ),
'gutenberg_display_experiment_field',
'gutenberg-experiments',
'gutenberg_experiments_section',
array(
'label' => __( 'Enable Full Site Editing (Warning: this will replace your theme and cause potentially irreversible changes to your site. We recommend using this only in a development environment.)', 'gutenberg' ),
'id' => 'gutenberg-full-site-editing',
)
);
add_settings_field(
'gutenberg-full-site-editing-demo',
__( 'Full Site Editing Demo Templates', 'gutenberg' ),
'gutenberg_display_experiment_field',
'gutenberg-experiments',
'gutenberg_experiments_section',
array(
'label' => __( 'Enable Full Site Editing demo templates', 'gutenberg' ),
'id' => 'gutenberg-full-site-editing-demo',
)
);
add_settings_field(
'gutenberg-page-templates',
__( 'Page Templates', 'gutenberg' ),
'gutenberg_display_experiment_field',
'gutenberg-experiments',
'gutenberg_experiments_section',
array(
'label' => __( 'Enable page templates', 'gutenberg' ),
'id' => 'gutenberg-page-templates',
)
);
register_setting(
'gutenberg-experiments',
'gutenberg-experiments'
);
}
add_action( 'admin_init', 'gutenberg_initialize_experiments_settings' );
/**
* Display a checkbox field for a Gutenberg experiment.
*
* @since 6.3.0
*
* @param array $args ( $label, $id ).
*/
function gutenberg_display_experiment_field( $args ) {
$options = get_option( 'gutenberg-experiments' );
$value = isset( $options[ $args['id'] ] ) ? 1 : 0;
?>
gutenberg_is_experiment_enabled( 'gutenberg-widget-experiments' ),
'__experimentalBlockDirectory' => gutenberg_is_experiment_enabled( 'gutenberg-block-directory' ),
'__experimentalEnableFullSiteEditing' => gutenberg_is_experiment_enabled( 'gutenberg-full-site-editing' ),
'__experimentalEnableFullSiteEditingDemo' => gutenberg_is_experiment_enabled( 'gutenberg-full-site-editing-demo' ),
'__experimentalEnablePageTemplates' => gutenberg_is_experiment_enabled( 'gutenberg-page-templates' ),
);
$gradient_presets = current( (array) get_theme_support( '__experimental-editor-gradient-presets' ) );
if ( false !== $gradient_presets ) {
$experiments_settings['gradients'] = $gradient_presets;
}
$experiments_settings['disableCustomGradients'] = get_theme_support( '__experimental-disable-custom-gradients' );
return array_merge( $settings, $experiments_settings );
}
add_filter( 'block_editor_settings', 'gutenberg_experiments_editor_settings' );