如何显示产品模板中的商店字段?

How to display store fields from the product template?

我有一个 Drupal 8.7 站点和 Drupal Commerce 2.14 模块

在我的商店模板中显示字段 field_professionnel_cgv 我使用此代码 TWIG :

{{ store.field_professionnel_cgv }}

如何在我的产品模板中显示该字段。

您可以将 mymodule_preprocess_commerce_product() 钩子函数添加到您的模块中,并在该函数中获取存储实体并使用其中的数据设置 twig 变量,以便它在您的模板中可用。

查看原始函数的外观: /modules/contrib/commerce/modules/product/commerce_product.模块

function template_preprocess_commerce_product(array &$variables) {
  /** @var Drupal\commerce_product\Entity\ProductInterface $product */
  $product = $variables['elements']['#commerce_product'];

  $variables['product_entity'] = $product;
  $variables['product_url'] = $product->isNew() ? '' : $product->toUrl();
  $variables['product'] = [];
  foreach (Element::children($variables['elements']) as $key) {
    $variables['product'][$key] = $variables['elements'][$key];
  }
}

因此,您必须像此处那样获取存储对象并分配 twig 变量。