فهرست منبع

displaying licenses in user edit form

bach 1 سال پیش
والد
کامیت
83a6f13a10
1فایلهای تغییر یافته به همراه51 افزوده شده و 0 حذف شده
  1. 51 0
      web/modules/custom/materio_commerce/materio_commerce.module

+ 51 - 0
web/modules/custom/materio_commerce/materio_commerce.module

@@ -1,4 +1,6 @@
 <?php
+// use Drupal\Core\Form\FormBuilder;
+use \Drupal\Core\Link;
 
 function materio_commerce_form_alter(&$form, &$form_state, $form_id) {
   if ($form_id == 'commerce_checkout_flow_multistep_default') {
@@ -20,4 +22,53 @@ function materio_commerce_form_commerce_order_add_form_alter(&$form, &$form_stat
 
     $form['customer']['uid']['#selection_handler'] = 'default:user_by_email';
   }
+}
+
+function materio_commerce_form_user_form_alter(&$form, &$form_state, $form_id) {
+  $mail = $form['account']['mail']['#default_value'];
+  $user_storage = \Drupal::entityTypeManager()->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)
+      ];
+    }
+  }
+
+
 }