在订单项视图中显示自定义产品数据



我在添加到购物车时遇到问题。我有不同定制条件的产品可供选择。当客户选择特定选项时。它会添加到购物车中。当客户选择另一个选项并添加。它显示为购物车中的第二个项目。这没关系。但在付款后,订单显示项目1和项目2下的自定义选项,但没有自定义数据。

所以我在想,与其把同一个产品展示成不同的商品。我想更新产品自定义数据,这样它将始终显示为单个项目。

(注意:我已经从管理员那里启用了"单独出售"选项,但它有效)

如果没有,你能告诉我如何在订单中正确显示吗,这样付款后发送的电子邮件,订单页面就会正确显示。

注意:我使用的自定义数据是位置和日期。

提前谢谢。

更新:

请参阅最近的相关问题(实际工作示例):

  • 向订单项详细信息添加用户自定义字段值
  • 将自定义产品数据动态添加为订单上的项目元数据

因此,您需要首先根据订单项目中的显示值设置产品属性,以获得该值的干净显示标签。然后,您必须将这些属性与相关产品中的任何值进行设置(这些强制属性值将被您的海关值所取代。

因此,如果您的属性Name是"Primary choice"(例如),您将在中设置pa_primary-choice

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文件中,也可以位于任何插件文件中

相关内容

  • 没有找到相关文章

最新更新