UPDATE:
请参阅最近的相关问题(实际工作示例):
- 将用户自定义字段值添加到订单商品详细信息 https://stackoverflow.com/questions/41981493/adding-user-custom-field-value-to-order-items-details/41988701#41988701
- 动态添加自定义产品数据作为订单上的项目元数据 https://stackoverflow.com/questions/41971376/add-custom-product-data-dynamically-as-item-meta-data-on-the-order/41971727#41971727
因此,您首先需要通过订单项中的显示值设置产品属性,以获得该值的干净显示标签。然后,您必须使用相关产品中的任何值来设置此属性(这些强制属性值将被您的海关值替换。
因此,如果您的属性名称是“主要选择”(例如),您将设置pa_primary-choice
in:
wc_add_order_item_meta($item_id, 'pa_primary-choice', $custom_field_value, true);
然后,您将在订单项目详细信息中的产品标题项目下方获得带有自定义字段值的标签名称(这里“XXXX”是您显示的自定义字段值):
Primary choice: XXXX
抱歉,但由于您的问题不太清楚,不是很详细,并且没有您正在使用的任何代码。我想您正在谈论为可变产品设置的产品自定义字段,这些字段反映在购物车对象项目上。
您可能需要一些额外的代码来将此信息添加为元数据,以便将其视为订单的一部分。你可以尝试像下面这样的东西,根据产品页面、购物车和结账时提交的数据设置方式调整代码…
add_action('woocommerce_add_order_item_meta','add_custom_values_to_order_item_meta', 1, 3 );
function add_custom_values_to_order_item_meta( $item_id, $values, $cart_item_key ) {
$custom_field1 = $_POST['my_custom_field1_key'];
// or $values['my_custom_field1_key'];
$custom_field2 = $_POST['my_custom_field2_key'];
// or $values['my_custom_field2_key'];
if ( !empty($custom field1) )
wc_add_order_item_meta($item_id, 'custom_meta_key1', $custom_field1, true);
if ( !empty($custom field2) )
wc_add_order_item_meta($item_id, 'custom_meta_key2', $custom_field2, true);
// And so on …
}
对于产品变体,情况更加复杂,如果您想为每个项目获得干净的内容,我的意思是带有您自定义选择字段值的标题。目前,您问题中提供的信息和使用的代码不可能为您提供更多帮助......
代码位于活动子主题(或主题)的 function.php 文件中或任何插件文件中。
对于“单独出售”,你能做的就是使用woocommerce_is_sold_individually
将从产品中删除数量前端设置的钩子:
add_filter( 'woocommerce_is_sold_individually', '__return_true' );
代码位于活动子主题(或主题)的 function.php 文件中或任何插件文件中。