Submit callback for the user profile form to save the settings.

1 string reference to 'entity_redirect_user_profile_form_submit'
entity_redirect_form_user_form_alter in ./entity_redirect.module
Implements hook_form_FORM_ID_alter().

File

./entity_redirect.module, line 357

Code

function entity_redirect_user_profile_form_submit($form, FormStateInterface $form_state) {
    $user_id = $form_state->getFormObject()
        ->getEntity()
        ->id();
    foreach ($form_state->getValue('entity_options') as $type => $bundles) {
        foreach ($bundles as $bundle => $data) {
            $bundle = \Drupal::service('entity_type.manager')->getStorage($type)
                ->load($bundle);
            $settings = $bundle->getThirdPartySetting('entity_redirect', 'personalization', []);
            $settings[$user_id] = [
                'destination' => $data['destination'],
                'url' => $data['url'],
                'external' => $data['external'],
            ];
            $bundle->setThirdPartySetting('entity_redirect', "personalization", $settings);
            $bundle->save();
        }
    }
}