public function Tracking::view in Ubercart 8.4
Returns the contents of an order pane as a store administrator.
Parameters
\Drupal\uc_order\OrderInterface $order: The order that is being viewed.
string $view_mode: The view mode that is being used to render the order.
Return value
array A render array showing order data.
Overrides OrderPanePluginInterface::view
File
- shipping/
uc_fulfillment/ src/ Plugin/ Ubercart/ OrderPane/ Tracking.php, line 30
Class
- Tracking
- Display tracking numbers of shipped packages.
Namespace
Drupal\uc_fulfillment\Plugin\Ubercart\OrderPaneCode
public function view(OrderInterface $uc_order, $view_mode) {
if ($view_mode == 'customer' || $view_mode == 'view') {
$tracking = [];
$shipments = Shipment::loadByOrder($uc_order
->id());
foreach ($shipments as $shipment) {
if ($shipment
->getTrackingNumber()) {
$tracking[$shipment
->getCarrier()][] = $shipment
->getTrackingNumber();
}
else {
foreach ($shipment
->getPackages() as $package) {
if ($package
->getTrackingNumber()) {
$tracking[$shipment
->getCarrier()][] = $package
->getTrackingNumber();
}
}
}
}
// Do not show an empty pane to customers.
if ($view_mode == 'view' || !empty($tracking)) {
$build = [];
foreach ($tracking as $title => $list) {
$build[$title] = [
'#theme' => 'item_list',
'#title' => $title,
'#items' => $list,
];
}
if (empty($tracking)) {
$build = [
'#markup' => $this
->t('No tracking numbers have been entered.'),
];
}
return $build;
}
}
}