| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 | <?php// use Drupal\Core\Form\FormBuilder;// use Drupal\Core\Url;use \Drupal\Core\Link;// use Drupal\Core\Entity\EntityInterface;use Drupal\Core\Entity\EntityFormInterface;// use Drupal\Core\Form\FormStateInterface;use Drupal\user\EntityOwnerInterface;function materio_commerce_form_alter(&$form, &$form_state, $form_id) {  if ($form_id == 'commerce_checkout_flow_multistep_default') {      if ($form["#step_id"] == "review") {        // $form['buttons']['continue']['#value'] = t('Desired Custom Text Here');        $form['actions']['next']['#value'] = t('Place your order');      }  }}function materio_commerce_form_commerce_order_add_form_alter(&$form, &$form_state, $form_id) {  $currentUser = \Drupal::currentUser();  $roles = $currentUser->getRoles();  if (in_array("admin", $roles)){    $form['type']['#default_value'] = 'materio_order_type';    $form['type']['#disabled'] = true;    $form['customer']['uid']['#selection_handler'] = 'default:user_by_email';  }}function materio_commerce_form_role_delegation_role_assign_form_alter(&$form, &$form_state, $form_id) {  // /** @var \Drupal\Core\Entity\EntityFormInterface $form_object */  // $form_object = $form_state->getFormObject();  // if (!($form_object instanceof EntityFormInterface)) {  //   // We're only interested in forms for an entity.  //   return;  // }  // $entity = $form_object->getEntity();  // $entity_type_id = $entity->getEntityTypeId();  // if (!($entity instanceof EntityOwnerInterface) && $entity_type_id != 'user') {  //   // We only act on entities that have an owner, and user entities.  //   return;  // }  /** @var \Drupal\user\UserInterface $account */  $account = $form_state->getBuildInfo()['args'][0];  $license_storage = \Drupal::entityTypeManager()->getStorage('commerce_license');  $licenses = $license_storage->loadByProperties(['uid' => $account->id()]);    if ($licenses) {    $licenses_by_role = [];    foreach ($licenses as $lid => $license) {      $licensed_role_id = $license->license_role->target_id;      $licenses_by_role[$licensed_role_id]['licenses'][] = $license;      $license_state = $license->getState()->getValue()['value'];      if($license_state === 'active') {        $licenses_by_role[$licensed_role_id]['license_active'] = true;      }    }    foreach ($licenses_by_role as $rid => $role_licenses) {      $license_active = isset($role_licenses['license_active']) ? true : false;      $description = "";      if($license_active) {        $form["account"]["role_change"][$rid]['#disabled'] = TRUE;        $form["account"]["role_change"][$rid]['#default_value'] = TRUE;        $description = t("This role is granted by a license. It cannot be removed manually.<br/>");      }      foreach ($role_licenses['licenses'] as $license) {        $license_state = $license->getState()->getValue()['value'];        $product_variation = $license->getPurchasedEntity();        $product = null;        if ($product_variation){          $product = $product_variation->getProduct();        }        $granted = $license->getGrantedTime();        $expires = $license->getExpiresTime();        $license_edit_url = $license->toUrl();        $license_link = Link::fromTextAndUrl(t('edit license'), $license_edit_url);        $order = $license->getOriginatingOrder();        if ($order) {          $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(t("order @num (@state)", array(            '@num' => $order_number,            '@state' => $order_state          )), $order_url);        }        $description .= t("-- @product: @variation | license state: @license_state | granted: @granted | expires: @expires | @license_link | @order_link<br/>", array(          '@product' => $product ? $product->getTitle() : t('no product'),          '@variation' => $product_variation ? $product_variation->getTitle() : t('no variation'),          '@license_state' => $license_state,          '@granted' => date('d-m-Y', $granted),          '@expires' => $expires === "0" ? 'never' : date('d-m-Y', $expires),          '@license_link' => $license_link->toString(),          '@order_link' => $order ? $order_link->toString() : t('no order')        ));      }      $form["account"]["role_change"][$rid]['#description'] = $description;    }  }}function materio_commerce_form_user_form_alter(&$form, &$form_state, $form_id) {  if ($form_id !== 'user_form') return;  // WE USE FORM OBJECT TO GET THE ENTITY instead of followings  // $mail = $form['account']['mail']['#default_value'];  // $user_storage = \Drupal::entityTypeManager()->getStorage('user');  // $users = $user_storage->loadByProperties(['mail' => $mail]);  // $user = reset($users);  // $roles = $user->getRoles();  /** @var \Drupal\Core\Entity\EntityFormInterface $form_object */  $form_object = $form_state->getFormObject();  if (!($form_object instanceof EntityFormInterface)) {    // We're only interested in forms for an entity.    return;  }  $entity = $form_object->getEntity();  $entity_type_id = $entity->getEntityTypeId();  if (!($entity instanceof EntityOwnerInterface) && $entity_type_id != 'user') {    // We only act on entities that have an owner, and user entities.    return;  }  $license_storage = \Drupal::entityTypeManager()->getStorage('commerce_license');  $licenses = $license_storage->loadByProperties(['uid' => $entity->id()]);    if ($licenses) {    $licenses_by_role = [];    foreach ($licenses as $lid => $license) {      $licensed_role_id = $license->license_role->target_id;      $licenses_by_role[$licensed_role_id]['licenses'][] = $license;      $license_state = $license->getState()->getValue()['value'];      if($license_state === 'active') {        $licenses_by_role[$licensed_role_id]['license_active'] = true;      }    }    foreach ($licenses_by_role as $rid => $role_licenses) {      $license_active = isset($role_licenses['license_active']) ? true : false;      $description = "";      if($license_active) {        $form["role_change"]["widget"][$rid]['#disabled'] = TRUE;        $form["role_change"]["widget"][$rid]['#default_value'] = TRUE;        $description = t("This role is granted by a license. It cannot be removed manually.<br/>");      }      foreach ($role_licenses['licenses'] as $license) {        $license_state = $license->getState()->getValue()['value'];        $product_variation = $license->getPurchasedEntity();        $product = null;        if ($product_variation){          $product = $product_variation->getProduct();        }        $granted = $license->getGrantedTime();        $expires = $license->getExpiresTime();        $license_edit_url = $license->toUrl();        $license_link = Link::fromTextAndUrl(t('edit license'), $license_edit_url);        $order = $license->getOriginatingOrder();        if ($order) {          $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(t("order @num (@state)", array(            '@num' => $order_number,            '@state' => $order_state          )), $order_url);        }        $description .= t("-- @product: @variation | license state: @license_state | granted: @granted | expires: @expires | @license_link | @order_link<br/>", array(          '@product' => $product ? $product->getTitle() : t('no product'),          '@variation' => $product_variation ? $product_variation->getTitle() : t('no variation'),          '@license_state' => $license_state,          '@granted' => date('d-m-Y', $granted),          '@expires' => $expires === "0" ? 'never' : date('d-m-Y', $expires),          '@license_link' => $license_link->toString(),          '@order_link' => $order ? $order_link->toString() : t('no order')        ));      }      $form["role_change"]["widget"][$rid]['#description'] = $description;    }  }}
 |