You are here

function uc_attribute_node_insert in Ubercart 8.4

Same name and namespace in other branches
  1. 6.2 uc_attribute/uc_attribute.module \uc_attribute_node_insert()
  2. 7.3 uc_attribute/uc_attribute.module \uc_attribute_node_insert()

Implements hook_node_insert().

File

uc_attribute/uc_attribute.module, line 206
Ubercart Attribute module.

Code

function uc_attribute_node_insert($node) {

  // Set attributes from class attributes.
  $connection = \Drupal::database();
  $select = $connection
    ->select('uc_class_attributes', 'ca')
    ->fields('ca', [
    'aid',
    'label',
    'ordering',
    'required',
    'display',
    'default_option',
  ])
    ->condition('pcid', $node
    ->getType());

  // SELECT $node->nid AS nid.
  $select
    ->addExpression(':nid', 'nid', [
    ':nid' => $node
      ->id(),
  ]);
  $connection
    ->insert('uc_product_attributes')
    ->from($select)
    ->execute();

  // Set options from class options.
  $select = $connection
    ->select('uc_class_attribute_options', 'co')
    ->fields('co', [
    'oid',
    'cost',
    'price',
    'weight',
    'ordering',
  ])
    ->condition('pcid', $node
    ->getType());
  $select
    ->addExpression(':nid', 'nid', [
    ':nid' => $node
      ->id(),
  ]);
  $connection
    ->insert('uc_product_options')
    ->from($select)
    ->execute();
}