class AddToWishlistLink in Commerce Add To Cart Link 8
Same name and namespace in other branches
- 2.x modules/wishlist/src/AddToWishlistLink.php \Drupal\commerce_add_to_wishlist_link\AddToWishlistLink
Defines a helper class for constructing add to wishlist links.
Hierarchy
- class \Drupal\commerce_add_to_wishlist_link\AddToWishlistLink
Expanded class hierarchy of AddToWishlistLink
1 file declares its use of AddToWishlistLink
- commerce_add_to_wishlist_link.module in modules/
wishlist/ commerce_add_to_wishlist_link.module - Hook implementations of commerce_add_to_wishlist_link module.
File
- modules/
wishlist/ src/ AddToWishlistLink.php, line 12
Namespace
Drupal\commerce_add_to_wishlist_linkView source
class AddToWishlistLink {
/**
* The product variation.
*
* @var \Drupal\commerce_product\Entity\ProductVariationInterface
*/
protected $variation;
/**
* Constructs a new AddToWishlistLink object.
*
* @param \Drupal\commerce_product\Entity\ProductVariationInterface $variation
* The product variation.
*/
public function __construct(ProductVariationInterface $variation) {
$this->variation = $variation;
}
/**
* Generate a render array for an add-to-wishlist link.
*
* @return array
* The render array.
*/
public function build() {
$build = [
'#theme' => 'commerce_add_to_wishlist_link',
'#url' => $this
->url(),
'#product_variation' => $this->variation,
];
$metadata = $this
->metadata();
$metadata
->applyTo($build);
return $build;
}
/**
* Generate an URL object for an add-to-wishlist link.
*
* @return \Drupal\Core\Url
* The URL object.
*/
public function url() {
/** @var \Drupal\commerce_add_to_cart_link\CartLinkTokenInterface $cart_link_token_service */
$cart_link_token_service = \Drupal::service('commerce_add_to_cart_link.token');
return Url::fromRoute('commerce_add_to_wishlist_link.page', [
'commerce_product' => $this->variation
->getProductId(),
'commerce_product_variation' => $this->variation
->id(),
'token' => $cart_link_token_service
->generate($this->variation),
]);
}
/**
* Generate metadata for an add-to-cart link.
*
* @return \Drupal\Core\Render\BubbleableMetadata
* The metadata object.
*/
public function metadata() {
/** @var \Drupal\commerce_add_to_cart_link\CartLinkTokenInterface $cart_link_token_service */
$cart_link_token_service = \Drupal::service('commerce_add_to_cart_link.token');
$contexts = $cart_link_token_service
->needsCsrfProtection() ? [
'session',
] : [];
return BubbleableMetadata::createFromRenderArray([
'#cache' => [
'contexts' => $contexts,
'tags' => [
'config:commerce_add_to_cart_link.settings',
],
],
]);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AddToWishlistLink:: |
protected | property | The product variation. | |
AddToWishlistLink:: |
public | function | Generate a render array for an add-to-wishlist link. | |
AddToWishlistLink:: |
public | function | Generate metadata for an add-to-cart link. | |
AddToWishlistLink:: |
public | function | Generate an URL object for an add-to-wishlist link. | |
AddToWishlistLink:: |
public | function | Constructs a new AddToWishlistLink object. |