arch-8.x-1.x-dev/modules/order/arch_order.api.php
modules/order/arch_order.api.php
<?php
/**
* @file
* Hooks specific to the Arch order module.
*/
/**
* @addtogroup hooks
* @{
*/
use Drupal\arch_cart\Cart\CartInterface;
use Drupal\arch_order\Plugin\Field\FieldType\OrderLineItemInterface;
use Drupal\arch_product\Entity\Product;
/**
* Alter mail params before build content.
*
* @param array $token_params
* Token params passed to Token::replace() method.
* @param array $context
* Mail context data.
*/
function hook_arch_order_mail_params_alter(array &$token_params, array &$context) {
// @todo Add example.
}
/**
* Alter order data before created from cart.
*
* @param array $data
* Order data passed to Order::create().
* @param \Drupal\arch_cart\Cart\CartInterface $cart
* Cart instance.
*/
function hook_arch_order_create_from_cart_data_alter(array &$data, CartInterface $cart) {
foreach ($data['line_items'] as $index => $line_item) {
if ($line_item['type'] != OrderLineItemInterface::ORDER_LINE_ITEM_TYPE_PRODUCT) {
continue;
}
/** @var \Drupal\arch_product\Entity\ProductInterface $product */
$product = Product::load($line_item['product_id']);
if (
!$product
|| empty($line_item['quantity'])
) {
unset($data['line_items'][$index]);
}
}
}
/**
* @} End of "addtogroup hooks".
*/
