commerce-8.x-2.8/modules/product/commerce_product.post_update.php
modules/product/commerce_product.post_update.php
<?php
/**
* @file
* Post update functions for Product.
*/
use Drupal\Core\Entity\Entity\EntityFormDisplay;
/**
* Revert the Products view because of the updated permission.
*/
function commerce_product_post_update_1() {
/** @var \Drupal\commerce\Config\ConfigUpdaterInterface $config_updater */
$config_updater = \Drupal::service('commerce.config_updater');
$views = [
'views.view.commerce_products',
];
$result = $config_updater->revert($views, FALSE);
$success_results = $result->getSucceeded();
$failure_results = $result->getFailed();
$message = '';
if ($success_results) {
$message = t('Succeeded:') . '<br>';
foreach ($success_results as $success_message) {
$message .= $success_message . '<br>';
}
$message .= '<br>';
}
if ($failure_results) {
$message .= t('Failed:') . '<br>';
foreach ($failure_results as $failure_message) {
$message .= $failure_message . '<br>';
}
}
return $message;
}
/**
* Revert the default order item form display.
*/
function commerce_product_post_update_2() {
if (!\Drupal::moduleHandler()->moduleExists('commerce_order')) {
return '';
}
/** @var \Drupal\commerce\Config\ConfigUpdaterInterface $config_updater */
$config_updater = \Drupal::service('commerce.config_updater');
$result = $config_updater->revert(['core.entity_form_display.commerce_order_item.default.default']);
$success_results = $result->getSucceeded();
$failure_results = $result->getFailed();
$message = '';
if ($success_results) {
$message = t('Succeeded:') . '<br>';
foreach ($success_results as $success_message) {
$message .= $success_message . '<br>';
}
$message .= '<br>';
}
if ($failure_results) {
$message .= t('Failed:') . '<br>';
foreach ($failure_results as $failure_message) {
$message .= $failure_message . '<br>';
}
}
return $message;
}
/**
* Revert the default order item form display.
*/
function commerce_product_post_update_3() {
if (!\Drupal::moduleHandler()->moduleExists('commerce_order')) {
return '';
}
/** @var \Drupal\commerce\Config\ConfigUpdaterInterface $config_updater */
$config_updater = \Drupal::service('commerce.config_updater');
$result = $config_updater->revert(['core.entity_form_display.commerce_order_item.default.default'], FALSE);
$success_results = $result->getSucceeded();
$failure_results = $result->getFailed();
$message = '';
if ($success_results) {
$message = t('Succeeded:') . '<br>';
foreach ($success_results as $success_message) {
$message .= $success_message . '<br>';
}
$message .= '<br>';
}
if ($failure_results) {
$message .= t('Failed:') . '<br>';
foreach ($failure_results as $failure_message) {
$message .= $failure_message . '<br>';
}
}
return $message;
}
/**
* Expose the status field on every product form.
*/
function commerce_product_post_update_4() {
$query = \Drupal::entityQuery('entity_form_display')->condition('targetEntityType', 'commerce_product');
$ids = $query->execute();
$form_displays = EntityFormDisplay::loadMultiple($ids);
foreach ($form_displays as $id => $form_display) {
/** @var \Drupal\Core\Entity\Display\EntityDisplayInterface $form_display */
$form_display->setComponent('status', [
'type' => 'boolean_checkbox',
'settings' => [
'display_label' => TRUE,
],
])->save();
}
}
/**
* Enable the "Duplicate" variation button for every product type.
*/
function commerce_product_post_update_5() {
$query = \Drupal::entityQuery('entity_form_display')->condition('targetEntityType', 'commerce_product');
$ids = $query->execute();
$form_displays = EntityFormDisplay::loadMultiple($ids);
foreach ($form_displays as $id => $form_display) {
/** @var \Drupal\Core\Entity\Display\EntityDisplayInterface $form_display */
$component = $form_display->getComponent('variations');
if ($component['type'] == 'inline_entity_form_complex') {
$component['settings']['allow_duplicate'] = TRUE;
$form_display->setComponent('variations', $component);
$form_display->save();
}
}
}
