Block/Pixel/ViewContent.php (60 lines of code) (raw):

<?php /** * Copyright (c) Meta Platforms, Inc. and affiliates. All Rights Reserved */ namespace Facebook\BusinessExtension\Block\Pixel; use Magento\ConfigurableProduct\Model\Product\Type\Configurable; class ViewContent extends Common { /** * @return string */ public function getContentIDs() { $product_ids = []; $product = $this->registry->registry('current_product'); if ($product && $product->getId()) { $product_ids[] = $product->getId(); } return $this->arrayToCommaSeparatedStringValues($product_ids); } /** * @return string|null */ public function getContentName() { $product = $this->registry->registry('current_product'); if ($product && $product->getId()) { return $this->escapeQuotes($product->getName()); } else { return null; } } /** * @return string */ public function getContentType() { $product = $this->registry->registry('current_product'); return ($product->getTypeId() == Configurable::TYPE_CODE) ? 'product_group' : 'product'; } /** * @return string|null */ public function getContentCategory() { $product = $this->registry->registry('current_product'); $categoryIds = $product->getCategoryIds(); if (count($categoryIds) > 0) { $categoryNames = []; $categoryModel = $this->fbeHelper->getObject(\Magento\Catalog\Model\Category::class); foreach ($categoryIds as $category_id) { // @todo do not load category model in loop - this can be a performance killer, use category collection $category = $categoryModel->load($category_id); $categoryNames[] = $category->getName(); } return $this->escapeQuotes(implode(',', $categoryNames)); } else { return null; } } public function getValue() { $product = $this->registry->registry('current_product'); if ($product && $product->getId()) { $price = $product->getFinalPrice(); $priceHelper = $this->fbeHelper->getObject(\Magento\Framework\Pricing\Helper\Data::class); return $priceHelper->currency($price, false, false); } else { return null; } } /** * @return string */ public function getEventToObserveName() { return 'facebook_businessextension_ssapi_view_content'; } }