OrderItemInlineForm.php in Commerce Core 8.2
File
modules/order/src/Form/OrderItemInlineForm.php
View source
<?php
namespace Drupal\commerce_order\Form;
use Drupal\commerce_order\Entity\OrderItemInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\inline_entity_form\Form\EntityInlineForm;
class OrderItemInlineForm extends EntityInlineForm {
public function getEntityTypeLabels() {
$labels = [
'singular' => $this
->t('order item'),
'plural' => $this
->t('order items'),
];
return $labels;
}
public function getTableFields($bundles) {
$fields = parent::getTableFields($bundles);
$fields['unit_price'] = [
'type' => 'field',
'label' => $this
->t('Unit price'),
'weight' => 2,
];
$fields['quantity'] = [
'type' => 'field',
'label' => $this
->t('Quantity'),
'weight' => 3,
];
return $fields;
}
public function entityForm(array $entity_form, FormStateInterface $form_state) {
$entity_form = parent::entityForm($entity_form, $form_state);
$entity_form['#entity_builders'][] = [
get_class($this),
'buildOrderItem',
];
return $entity_form;
}
public static function buildOrderItem($entity_type, OrderItemInterface $order_item, array $form, FormStateInterface $form_state) {
$purchased_entity = $order_item
->getPurchasedEntity();
if ($order_item
->isNew()) {
if ($purchased_entity) {
$order_item
->setTitle($purchased_entity
->getOrderItemTitle());
}
$order_item
->set('order_id', $form_state
->getFormObject()
->getEntity());
}
}
}