如何使用Drupal Commerce-2.x以编程方式使用product_id加载所有变体及其ID?

B.l*_*man 2 drupal-8 drupal-commerce

如何在Drupal commerce-2.x中的表单alter上从product_id加载variants_id?

小智 6

您需要首先加载Product variation entity,您需要获取Product variation ids from loaded product然后提取SKU,价格,货币代码等。

$parameter = \Drupal::routeMatch()->getParameter('commerce_product');
$product = \Drupal\commerce_product\Entity\Product::load((int)$parameter->id());
Run Code Online (Sandbox Code Playgroud)

/*Load Product Variations*/ $entity_manager = \Drupal::entityManager(); $product_variation = $entity_manager->getStorage('commerce_product_variation')->load((int)$product->getVariationIds()[0]); $price_number = $product_variation->get('price')->getValue()[0]['number']; $price_currency = $product_variation->get('price')->getValue()[0]['currency_code'];

  • `\Drupal::entityManager()` 已弃用。请改用 `\Drupal::entityTypeManager()`。https://api.drupal.org/api/drupal/core!lib!Drupal.php/function/Drupal%3A%3AentityManager/8.2.x (2认同)