function commerce_order_profile_type_form_submit in Commerce Core 8.2
Submission handler for commerce_order_form_profile_type_form_alter().
1 string reference to 'commerce_order_profile_type_form_submit'
- commerce_order_form_profile_type_form_alter in modules/
order/ commerce_order.module - Implements hook_form_FORM_ID_alter() for 'profile_type_form'.
File
- modules/
order/ commerce_order.module, line 302 - Defines the Order entity and associated features.
Code
function commerce_order_profile_type_form_submit(array $form, FormStateInterface $form_state) {
/** @var \Drupal\profile\Entity\ProfileTypeInterface $profile_type */
$profile_type = $form_state
->getFormObject()
->getEntity();
$customer_flag = $form_state
->getValue([
'commerce_order',
'customer_profile_type',
]);
$previous_customer_flag = $profile_type
->getThirdPartySetting('commerce_order', 'customer_profile_type');
/** @var \Drupal\commerce\ConfigurableFieldManagerInterface $configurable_field_manager */
$configurable_field_manager = \Drupal::service('commerce.configurable_field_manager');
$address_field_definition = commerce_order_build_address_field_definition($profile_type
->id());
if ($customer_flag && !$previous_customer_flag) {
$configurable_field_manager
->createField($address_field_definition, FALSE);
}
elseif (!$customer_flag && $previous_customer_flag) {
$configurable_field_manager
->deleteField($address_field_definition);
}
$profile_type
->setThirdPartySetting('commerce_order', 'customer_profile_type', $customer_flag);
$profile_type
->save();
}