如何以编程方式设置Commerce Product自定义订单项类型中字段的值?

时间:2014-12-26 12:55:50

标签: drupal-7 custom-fields drupal-commerce

我已经设置了一个产品,该产品使用名为“自定义备注”的自定义订单项类型(通过配置中的用户界面>订单项类型创建)。 “自定义笔记”中的一个字段是在结帐时公开的,是“field_notes”textarea字段。它按预期工作...在产品展示中我可以添加一些自定义文本,点击ORDER,然后注释一直到结帐。

但是,我需要以编程方式创建这些订单。我已经到了使用hook_menu提交订单的地步,它运作良好。唯一的问题是我似乎无法设置“field_notes”的值。

// Load whatever product represents the item the customer will be
// paying for and create a line item for it.    
$line_item = commerce_product_line_item_new($product, $quantity, $order->order_id);

// Save the line item to get its ID.
commerce_line_item_save($line_item);


//***this is the part that's not working. trying to set the field_notes field***
$line_item_wrapper = entity_metadata_wrapper('commerce_line_item', $line_item);
$line_item_wrapper->field_notes->set("Does this work??");


// Save the line item to get its ID.
commerce_line_item_save($line_item);

// Add the line item to the order using fago's rockin' wrapper.
$order_wrapper = entity_metadata_wrapper('commerce_order', $order);
$order_wrapper->commerce_line_items[] = $line_item;

// Save the order again to update its line item reference field.
commerce_order_save($order);

我做错了什么?谢谢!

1 个答案:

答案 0 :(得分:1)

我认为可能是因为您没有将正确的订单项类型传递给commerce_product_line_item_new。例如,我就是这样做的:

$line_item = commerce_product_line_item_new(
  $product,
  $quantity = 1,
  $order_id = 0,
  $data = array(),
  $line_item_type = 'my_custom_line_item_type'
);