public function WishlistAssignment::assignMultiple in Commerce Wishlist 8.3
Assigns multiple anonymous wishlists to the given user account.
Parameters
\Drupal\commerce_wishlist\Entity\WishlistInterface[] $wishlists: The wishlists.
\Drupal\user\UserInterface $account: The account.
Overrides WishlistAssignmentInterface::assignMultiple
File
- src/WishlistAssignment.php, line 91 
Class
- WishlistAssignment
- Default wishlist assignment implementation.
Namespace
Drupal\commerce_wishlistCode
public function assignMultiple(array $wishlists, UserInterface $account) {
  $allow_multiple = (bool) $this->configFactory
    ->get('commerce_wishlist.settings')
    ->get('allow_multiple');
  /** @var \Drupal\commerce_wishlist\WishlistStorageInterface $wishlist_storage */
  $wishlist_storage = $this->entityTypeManager
    ->getStorage('commerce_wishlist');
  foreach ($wishlists as $wishlist) {
    $default_wishlist = $wishlist_storage
      ->loadDefaultByUser($account, $wishlist
      ->bundle());
    // Check if multiple wishlists are allowed, in which case we're assigning
    // the wishlist to the given account.
    if ($allow_multiple || !$default_wishlist) {
      $this
        ->assign($wishlist, $account);
      continue;
    }
    // In case a single wishlist is allowed, we need to merge the wishlist
    // items with the default wishlist.
    $this->wishlistManager
      ->merge($wishlist, $default_wishlist);
  }
}