结合 3 个独立的工作脚本 - 用于 drupal 计算字段

Combine 3 separate working scripts - for drupal computed field

我在 drupal 中使用计算字段,它直接使用 PHP,唯一的问题是我不太了解 php。

下面的 3 个脚本可以单独使用。当我尝试组合它们时,当然使用不同的语法,它们都失败了。我想要做的是从 3 个不同的字段集或字段集合中添加 3 个字段。

第一

$price = 0;
$wrapper = entity_metadata_wrapper($entity_type, $entity);
foreach($wrapper->field_venue_sites_simple as $collection) {
   $price += $collection->field_site_fee->value();
}
$entity_field[0]['value'] = $price;

第二

$price = 0;
$wrapper = entity_metadata_wrapper($entity_type, $entity);
foreach($wrapper->field_venue_sites_w_catering as $collection) {
   $price += $collection->field_site_fee->value();
}
$entity_field[0]['value'] = $price;

第三

$price = 0;
$wrapper = entity_metadata_wrapper($entity_type, $entity);
foreach($wrapper->field_venue_site as $collection) {
   $price += $collection->field_peak_pricing->field_peak_price_saturday->value();
}
$entity_field[0]['value'] = $price;

我试过将它们组合起来,但没有用:

$price = 0;
$wrapper = entity_metadata_wrapper($entity_type, $entity);

$price = 

$wrapper->field_venue_sites_simple->field_site_fee->value() +
$wrapper->field_venue_site->field_peak_pricing->field_peak_price_saturday->value() +
$wrapper->field_venue_sites_w_catering->field_site_fee->value();

$entity_field[0]['value'] = $price;

我知道 foreach 循环遍历数组。我不需要它循环,所以我可以把它拿出来。都是多值字段,但我只需要它拉取一个值。

这个我也试过了,也没用:

$wrapper = entity_metadata_wrapper($entity_type, $entity);

$collection1 = $wrapper->field_venue_sites_simple;
$collection2 = $wrapper->field_venue_site;
$collection3 = $wrapper->field_venue_sites_w_catering;


$entity_field[0]['value'] =
$collection1->field_site_fee->value()+
$collection2->field_peak_pricing->field_peak_price_saturday->value()+
$collection3->field_site_fee->value();

非常感谢任何帮助!一整天都在搞这个。

把三个例子不同的部分结合起来…

$price = 0;
$wrapper = entity_metadata_wrapper($entity_type, $entity);
foreach($wrapper->field_venue_sites_simple as $collection) {
  $price += $collection->field_site_fee->value();
}  
foreach($wrapper->field_venue_sites_w_catering as $collection) {
  $price += $collection->field_site_fee->value(); 
}
foreach($wrapper->field_venue_site as $collection) {
  $price += $collection->field_peak_pricing->field_peak_price_saturday->value();
}

$entity_field[0]['value'] = $price;