From 58a8df64862fd10d4de23d6b42adfe6c918969f8 Mon Sep 17 00:00:00 2001 From: Sumit Sharma Date: Sat, 15 Jan 2022 00:09:17 +0530 Subject: [PATCH] fix: tag labels missing after adding entry on create order --- src/controllers/OrderController.php | 8 ------- src/elements/Order.php | 5 +++++ src/services/repository/TagRepository.php | 21 ++++++++++++++++++- .../_components/orders/settings-tab.twig | 4 ++-- 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/controllers/OrderController.php b/src/controllers/OrderController.php index e1f0b004..80d7881b 100644 --- a/src/controllers/OrderController.php +++ b/src/controllers/OrderController.php @@ -156,14 +156,6 @@ public function actionOrderDetail(array $variables = array()) $order->targetSites = json_encode($orderTargetSites); } - if (! empty(json_decode($order->tags, true))) { - $variables['tags'] = []; - - foreach (json_decode($order->tags, true) as $tagId) { - $variables['tags'][] = Craft::$app->getTags()->getTagById($tagId); - } - } - if ($orderTags= Craft::$app->getRequest()->getQueryParam('tags') ?? Craft::$app->getRequest()->getParam('tags')) { if (! is_array($orderTags)) { $orderTags = explode(',', $orderTags); diff --git a/src/elements/Order.php b/src/elements/Order.php index 18de12bc..8eb4f5b6 100644 --- a/src/elements/Order.php +++ b/src/elements/Order.php @@ -534,6 +534,11 @@ public function getOwner() return $owner; } + public function getTags() + { + return Translations::$plugin->tagRepository->getOrderTags($this); + } + public function getTargetSitesArray() { return $this->targetSites ? json_decode($this->targetSites, true) : array(); diff --git a/src/services/repository/TagRepository.php b/src/services/repository/TagRepository.php index b59e50a3..586888a3 100644 --- a/src/services/repository/TagRepository.php +++ b/src/services/repository/TagRepository.php @@ -12,6 +12,7 @@ use Craft; use craft\elements\Tag; +use acclaro\translations\elements\Order; class TagRepository { @@ -31,4 +32,22 @@ public function saveTag(Tag $tag) Craft::error( '['. __METHOD__ .'] Couldn’t save the tag "'.$tag->title.'"', 'translations' ); } } -} \ No newline at end of file + + /** + * Get Tags Object for an order + * + * @param Order $order + * @return array + */ + public function getOrderTags(Order $order) + { + $orderTags = []; + if ($order->tags) { + foreach (json_decode($order->tags, true) as $tagId) { + $orderTags[$tagId] = Craft::$app->getTags()->getTagById($tagId); + } + } + + return $orderTags; + } +} diff --git a/src/templates/_components/orders/settings-tab.twig b/src/templates/_components/orders/settings-tab.twig index 1880b004..5065aa21 100644 --- a/src/templates/_components/orders/settings-tab.twig +++ b/src/templates/_components/orders/settings-tab.twig @@ -248,8 +248,8 @@
- {% if tags is defined %} - {% for tag in tags %} + {% if not order.getTags is empty %} + {% for tag in order.getTags %}