From 83a6f13a101360c632388cae7df40f520ba6bc88 Mon Sep 17 00:00:00 2001 From: bach Date: Mon, 14 Nov 2022 22:33:48 +0100 Subject: [PATCH] displaying licenses in user edit form --- .../materio_commerce/materio_commerce.module | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/web/modules/custom/materio_commerce/materio_commerce.module b/web/modules/custom/materio_commerce/materio_commerce.module index 11295094..323434d9 100644 --- a/web/modules/custom/materio_commerce/materio_commerce.module +++ b/web/modules/custom/materio_commerce/materio_commerce.module @@ -1,4 +1,6 @@ getStorage('user'); + $users = $user_storage->loadByProperties(['mail' => $mail]); + $user = reset($users); + $roles = $user->getRoles(); + + $license_storage = \Drupal::entityTypeManager()->getStorage('commerce_license'); + $licenses = $license_storage->loadByProperties(['uid' => $user->id()]); + + if ($licenses) { + $form['license'] = [ + "#type" => 'fieldset', + "#title" => 'licenses' + ]; + foreach ($licenses as $lid => $license) { + $product_variation = $license->getPurchasedEntity(); + $product = $product_variation->getProduct(); + + $infos = []; + $infos[] = $product->getTitle(); + $infos[] = $product_variation->getTitle(); + + $granted = $license->getGrantedTime(); + $infos[] = "granted: " . date('d-m-Y', $granted); + $expires = $license->getExpiresTime(); + $infos[] = "expires: " . ($expires === "0" ? 'never' : date('d-m-Y', $expires)); + + $license_edit_url = $license->toUrl(); + $license_link = Link::fromTextAndUrl('edit license', $license_edit_url); + $infos[] = $license_link->toString(); + + $order = $license->getOriginatingOrder(); + $order_url = $order->toUrl(); + $order_state = $order->get('state')->first()->getValue()['value']; + $order_number = $order->get('order_number')->first()->getValue()['value']; + $order_link = Link::fromTextAndUrl("order " . $order_number . " (" . $order_state . ")", $order_url); + $infos[] = $order_link->toString(); + + $form['license']['license_'.$lid] = [ + "#type" => 'item', + "#description" => implode(" | ", $infos) + ]; + } + } + + } \ No newline at end of file