访问Drupal 7模块中的行项目的图像字段

时间:2014-03-12 17:58:35

标签: php drupal drupal-7

我正在制作自定义电子邮件,以便发送给希望与他人分享购物车的客户。到目前为止,我有每个产品的数量,SKU,价格,路径(节点/ XYZ)和标题。我在电子邮件中需要的最后一项是产品的图像路径。

我找到了以下所有其他信息:

$order = commerce_cart_order_load($user->uid);
foreach($wrapper->commerce_line_items as $d => $line_item_wrapper) {
    $sku = $line_item_wrapper->line_item_label->value();
    //...

打印出以下内容我能够看到包装器对象的受保护“数据”属性:

print_r($line_item_wrapper->commerce_product);

然后,我尝试使用以下内容找到field_image属性的getter方法:

print_r($line_item_wrapper->commerce_product->getPropertyInfo('field_image');

我结束了这里看似无用的getter函数entity_metadata_field_verbatim_get`,因为我不知道要传递什么样的参数。此外,在上面的最后一个印刷声明中,我没有看到任何有价值的东西。

我想知道是否需要查询此数据以及要查询的表/列?或者可以使用像node_load这样的东西?但是,我发现从订单项包装器中找到nid并不容易。

1 个答案:

答案 0 :(得分:0)

我能用这段代码解决上述问题:

$order = commerce_cart_order_load($user->uid);
$wrapper = entity_metadata_wrapper('commerce_order', $order);
$result = array();

foreach($wrapper->commerce_line_items as $d => $line_item_wrapper) {
    $product = array();
    $product['quantity'] = $line_item_wrapper->quantity->value();
    $product['sku'] = $line_item_wrapper->line_item_label->value();
    $product['path'] = $line_item_wrapper->commerce_display_path->value();
    $product['price'] = $line_item_wrapper->commerce_unit_price->amount->value();
    $product['title'] = $line_item_wrapper->commerce_product->title->value();
    $product['image'] = $line_item_wrapper->commerce_product->field_image->value();
    $product['image'] = $product['image'][0]['filename'];

    array_push($result, $product);
}

我不得不说,找到所有这些离散函数非常困难。我没有找到任何关于Drupal Commerce metadata_wrappers的 clear 文档。如果有人能提供进一步的信息,我很乐意看看。

一般来说,我使用了很多print_r();来查找这些值。