You are here

public function WishlistManager::merge in Commerce Wishlist 8.3

Merges the source wishlist into the target wishlist.

Parameters

\Drupal\commerce_wishlist\Entity\WishlistInterface $source: The source wishlist to merge.

\Drupal\commerce_wishlist\Entity\WishlistInterface $target: The target wishlist.

bool $save: Save wishlist.

Return value

\Drupal\commerce_wishlist\Entity\WishlistInterface The saved or modified wishlist.

Overrides WishlistManagerInterface::merge

File

src/WishlistManager.php, line 103

Class

WishlistManager
Default implementation of the wishlist manager.

Namespace

Drupal\commerce_wishlist

Code

public function merge(WishlistInterface $source, WishlistInterface $target, $save = TRUE) {
  foreach ($source
    ->getItems() as $wishlist_item) {
    $duplicate_wishlist_item = $wishlist_item
      ->createDuplicate();
    $duplicate_wishlist_item
      ->save();
    $target
      ->addItem($duplicate_wishlist_item);
  }
  if ($save) {
    $target
      ->save();
    $source
      ->delete();
  }
  return $target;
}