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

hai*_*ati 3 php wordpress custom-fields orders woocommerce

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

所以我在思考而不是展示与不同产品相同的产品.我想更新产品自定义数据,因此它将始终显示为单个项目.

(注意:我已经从管理员启用了"单独销售"选项,但其工作正常).

如果没有,你可以告诉我如何正确显示订单,所以付款后发送的电子邮件,订单页面将正确显示.

注意:我使用的自定义数据是loc和date.

先感谢您.

Loi*_*tec 5

更新:

查看最近的相关问题(实际工作示例):

因此,您首先需要在Orders项目中按显示值设置产品属性,以获得此值的干净显示标签.然后,您必须使用相关产品中的任何值设置此属性(这些要求属性值将替换为您的海关值.

因此,如果您的属性名称是"主要选择"(例如),您将设置pa_primary-choice:

wc_add_order_item_meta($item_id, 'pa_primary-choice', $custom_field_value, true);
Run Code Online (Sandbox Code Playgroud)

然后,您将在产品标题项下面的产品标题项中显示带有您的自定义字段值的标签名称(此处"XXXX"是您显示的自定义字段值):

Primary choice: XXXX
Run Code Online (Sandbox Code Playgroud)

对不起,但由于你的问题不是很清楚,不是非常详细,没有你正在使用的任何代码.我想您正在讨论为变量产品设置的产品自定义字段,这些字段反映在购物车对象项目上.

您可能需要一些额外的代码来将此信息添加为元数据,以便将其视为订单的一部分.您可以尝试以下内容,根据产品页面中的数据设置,购物车和结帐时提交的数据来调整代码 ...

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 …
}
Run Code Online (Sandbox Code Playgroud)

对于产品变化,它更复杂,如果你想为每个项目获得干净的东西,我的意思是一个带有你自定义选择字段值的标题.暂时提供的信息以及您问题中使用的代码不可能对您提供更多帮助......

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中.


对于"单独销售",您可以使用的woocommerce_is_sold_individually钩子将从产品中删除数量前端设置:

add_filter( 'woocommerce_is_sold_individually', '__return_true' );
Run Code Online (Sandbox Code Playgroud)

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中.