diff --git a/lib/class-wp-theme-json-gutenberg.php b/lib/class-wp-theme-json-gutenberg.php index d949fbef987a02..ef44519859197c 100644 --- a/lib/class-wp-theme-json-gutenberg.php +++ b/lib/class-wp-theme-json-gutenberg.php @@ -697,7 +697,10 @@ private static function get_settings_values_by_slug( $settings, $preset_metadata if ( isset( $preset_metadata['value_key'] ) ) { $value_key = $preset_metadata['value_key']; $value = $preset[ $value_key ]; - } elseif ( is_callable( $preset_metadata['value_func'] ) ) { + } elseif ( + isset( $preset_metadata['value_func'] ) && + is_callable( $preset_metadata['value_func'] ) + ) { $value_func = $preset_metadata['value_func']; $value = call_user_func( $value_func, $preset ); } else { @@ -1307,7 +1310,16 @@ private static function remove_insecure_settings( $input ) { esc_attr( esc_html( $preset['name'] ) ) === $preset['name'] && sanitize_html_class( $preset['slug'] ) === $preset['slug'] ) { - $value = $preset[ $preset_metadata['value_key'] ]; + $value = null; + if ( isset( $preset_metadata['value_key'] ) ) { + $value = $preset[ $preset_metadata['value_key'] ]; + } elseif ( + isset( $preset_metadata['value_func'] ) && + is_callable( $preset_metadata['value_func'] ) + ) { + $value = call_user_func( $preset_metadata['value_func'], $preset ); + } + $preset_is_valid = true; foreach ( $preset_metadata['properties'] as $property ) { if ( ! self::is_safe_css_declaration( $property, $value ) ) {