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

时间:2017-02-01 02:08:43

标签: php wordpress woocommerce custom-fields orders

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

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

(注意:我已启用选项"单独销售"来自管理员,但其正常工作)。

如果没有,您能告诉我如何正确显示订单,那么付款后发送的电子邮件,订单页面将会正确显示。

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

提前谢谢。

1 个答案:

答案 0 :(得分:5)

<强>更新

  

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

     

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

因此,如果你的属性名称是&#34;主要选择&#34; (例如)您将在 pa_primary-choice 中设置:

wc_add_order_item_meta($item_id, 'pa_primary-choice', $custom_field_value, true);

然后,您将在产品标题项下面的产品标题项中显示标签名称,并带有您的自定义字段值(此处&#34; XXXX&#34;是您显示的自定义字段值):< / p>

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文件中,或者放在任何插件文件中。

对于&#34;单独销售&#34; ,您可以使用 woocommerce_is_sold_individually 挂钩来删除产品中的数量前端设置:

add_filter( 'woocommerce_is_sold_individually', '__return_true' );

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