我已经设置了一个产品,该产品使用名为“自定义备注”的自定义订单项类型(通过配置中的用户界面>订单项类型创建)。 “自定义笔记”中的一个字段是在结帐时公开的,是“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);
我做错了什么?谢谢!
答案 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'
);