class CommerceFieldName in Commerce Migrate 3.0.x
Same name and namespace in other branches
- 8.2 modules/commerce/src/Plugin/migrate/process/commerce1/CommerceFieldName.php \Drupal\commerce_migrate_commerce\Plugin\migrate\process\commerce1\CommerceFieldName
- 3.1.x modules/commerce/src/Plugin/migrate/process/commerce1/CommerceFieldName.php \Drupal\commerce_migrate_commerce\Plugin\migrate\process\commerce1\CommerceFieldName
Determines the field name.
The CommerceFieldName process plugin changes the field name of the field being processed in two situations. One is for attributes and the other is for the address field.
In Commerce 1 the customer address used an address field with the name 'addressfield'. That is changed to 'address' here.
In Commerce 1 attributes were fields with a prefix of 'field_' and in Commerce 2 they are attributes with a prefix of 'attribute_'. This plugin determines if the field is an attribute field and changes the prefix.
field_name:
plugin:
commerce_field_name;
Plugin annotation
@MigrateProcessPlugin(
id = "commerce1_field_name"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\migrate\ProcessPluginBase implements MigrateProcessInterface
- class \Drupal\commerce_migrate_commerce\Plugin\migrate\process\commerce1\CommerceFieldName implements ContainerFactoryPluginInterface
- class \Drupal\migrate\ProcessPluginBase implements MigrateProcessInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of CommerceFieldName
1 file declares its use of CommerceFieldName
- CommerceFieldNameTest.php in modules/
commerce/ tests/ src/ Unit/ Plugin/ migrate/ process/ commerce1/ CommerceFieldNameTest.php
File
- modules/
commerce/ src/ Plugin/ migrate/ process/ commerce1/ CommerceFieldName.php, line 36
Namespace
Drupal\commerce_migrate_commerce\Plugin\migrate\process\commerce1View source
class CommerceFieldName extends ProcessPluginBase implements ContainerFactoryPluginInterface {
/**
* The process plugin manager.
*
* @var \Drupal\migrate\Plugin\MigratePluginManager
*/
protected $processPluginManager;
/**
* The migration plugin manager.
*
* @var \Drupal\migrate\Plugin\MigrationPluginManagerInterface
*/
protected $migrationPluginManager;
/**
* {@inheritdoc}
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationPluginManagerInterface $migration_plugin_manager, MigratePluginManagerInterface $process_plugin_manager) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->migrationPluginManager = $migration_plugin_manager;
$this->processPluginManager = $process_plugin_manager;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('plugin.manager.migration'), $container
->get('plugin.manager.migrate.process'));
}
/**
* {@inheritdoc}
*/
public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
$field_name = $row
->getSourceProperty('field_name');
$entity_type = $row
->getSourceProperty('entity_type');
$type = $row
->getSourceProperty('type');
// Get the commerce attribute style field name.
if ($entity_type == 'commerce_product' && $type == 'taxonomy_term_reference') {
$instances = $row
->getSourceProperty('instances');
// If any instance has a select widget, then this is an attribute.
foreach ($instances as $instance) {
$data = unserialize($instance['data']);
if ($data['widget']['type'] == 'options_select') {
$field_name = preg_replace('/^field_/', 'attribute_', $field_name);
// The field name may be > 32 characters so make it unique.
$migration = $this->migrationPluginManager
->createStubMigration([]);
$configuration = [
'entity_type' => 'commerce_product_attribute',
'field' => 'field_name',
'length' => 29,
];
$plugin = $this->processPluginManager
->createInstance('make_unique_entity_field', $configuration, $migration);
$field_name = $plugin
->transform($field_name, $migrate_executable, $row, 'tmp');
}
break;
}
}
// For profiles the name of the addressfield changes to address.
if ($entity_type == 'commerce_customer_profile' && $type == 'addressfield') {
$field_name = 'address';
}
return $field_name;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
CommerceFieldName:: |
protected | property | The migration plugin manager. | |
CommerceFieldName:: |
protected | property | The process plugin manager. | |
CommerceFieldName:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
|
CommerceFieldName:: |
public | function |
Performs the associated process. Overrides ProcessPluginBase:: |
|
CommerceFieldName:: |
public | function |
Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase:: |
|
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
public | function | 2 | |
DependencySerializationTrait:: |
public | function | 2 | |
MessengerTrait:: |
protected | property | The messenger. | 27 |
MessengerTrait:: |
public | function | Gets the messenger. | 27 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
2 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
ProcessPluginBase:: |
public | function |
Indicates whether the returned value requires multiple handling. Overrides MigrateProcessInterface:: |
3 |
StringTranslationTrait:: |
protected | property | The string translation service. | 4 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |