You are here

function commerce_cart_blocks_show_cart_dialog_command in Commerce Cart Blocks 8

Dialog command callback.

1 call to commerce_cart_blocks_show_cart_dialog_command()
commerce_cart_blocks_ajax_callback in ./commerce_cart_blocks.module
Ajax callback for variation product form.

File

./commerce_cart_blocks.module, line 373
Contains commerce_cart_blocks.module.

Code

function commerce_cart_blocks_show_cart_dialog_command(array $ajax_settings, $cartCount) {
  $messages = StatusMessages::renderMessages(NULL);

  /** @var \Drupal\Core\Render\Markup $message */
  $message = $messages['#message_list']['status'][0];
  $linksTemplate = '<div class="commerce-cart-block--contents__links">%s</div>';
  $links = [];
  if ($ajax_settings['keep_browsing']) {
    $links[] = '<a href="#" class="button keepBrowsing dialog-cancel">' . t('Keep Browsing') . '</a>';
  }
  if ($ajax_settings['cart']) {
    $links[] = '<a href="/cart" class="button viewCart">' . t('View Cart') . '</a>';
  }
  if ($ajax_settings['checkout']) {
    $carts = commerce_cart_blocks_get_carts();
    if (!empty($carts)) {

      /** @var \Drupal\commerce_order\Entity\OrderInterface $cart */
      $cart = reset($carts);
      $links[] = '<a href="/checkout/' . $cart
        ->id() . '" class="button checkout">' . t('Checkout') . '</a>';
    }
  }
  $message .= sprintf($linksTemplate, implode("\n", $links));
  $messages['#message_list']['status'][0] = Markup::create($message);
  $dialogOptions = [
    'width' => 'auto',
    'maxWidth' => 500,
    'height' => 'auto',
    'modal' => TRUE,
    'fluid' => TRUE,
    'resizable' => FALSE,
    'dialogClass' => 'added-to-cart-dialog',
  ];
  if ($cartCount === 1) {
    $dialogOptions['dialogClass'] .= ' js-firstItem';
  }
  return new OpenModalDialogCommand($ajax_settings['modal_title'], $messages, $dialogOptions);
}