- // Add metatag form fields.
- $form = $metatag_manager->form($values, $form);
+ // Retrieve configuration settings.
+ $settings = $this->config('metatag.settings');
+ $entity_type_groups = $settings->get('entity_type_groups');
+
+ // Find the current entity type and bundle.
+ $metatag_defaults_id = $metatag_defaults->id();
+ $type_parts = explode('__', $metatag_defaults_id);
+ $entity_type = $type_parts[0];
+ $entity_bundle = isset($type_parts[1]) ? $type_parts[1] : NULL;
+
+ // See if there are requested groups for this entity type and bundle.
+ $groups = !empty($entity_type_groups[$entity_type]) && !empty($entity_type_groups[$entity_type][$entity_bundle]) ? $entity_type_groups[$entity_type][$entity_bundle] : [];
+ // Limit the form to requested groups, if any.
+ if (!empty($groups)) {
+ $form = $metatag_manager->form($values, $form, [$entity_type], $groups);
+ }
+ // Otherwise, display all groups.
+ else {
+ $form = $metatag_manager->form($values, $form);
+ }