【问题标题】:Displaying custom product data in Order items view在订单项目视图中显示自定义产品数据
【发布时间】:2017-06-17 16:05:03
【问题描述】:

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

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

(注意:我已经从管理员那里启用了“单独销售”选项,但它可以工作)。

如果不能,请告诉我如何正确显示在订单中,以便付款后发送的电子邮件,订单页面将正确显示。

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

提前谢谢你。

【问题讨论】:

    标签: php wordpress woocommerce custom-fields orders


    【解决方案1】:

    更新:

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

    因此,您首先需要通过 Orders 项目中的显示值设置产品属性,以便为该值获得一个清晰显示的标签。然后,您必须在相关产品中使用任何值设置此属性(这些强制性属性值将被您的海关值替换。

    因此,如果您的属性名称是“主要选择”(例如),您将在以下位置设置 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 文件或任何插件文件中。

    【讨论】:

    • 嘿 LoicThe Aztec,我有点像这样添加元字段,但在点击添加到购物车时使用 javascript。直到付款正确显示,但付款完成后。在订单视图和订单电子邮件中,它向我显示了产品第一次出现时的所有自定义字段,而第二次出现的产品没有自定义字段
    • @haileyTurlapati 您应该使用您的所有自定义代码和详细信息更新您的问题,没有它没有人可以帮助...This is a kind of related question,所以可能是您的问题在于您在购物车中设置信息的方式,第一的。这个 woocommerce_add_order_item_meta 是在订单视图和电子邮件通知中显示该数据的正确钩子......
    • @haileyTurlapati 我已经更新了我的答案……这对你有用。
    • 谢谢@Loic,我解决了这个问题。我正在删除早期记录并使用新记录进行更新。
    猜你喜欢
    • 2012-02-26
    • 2023-03-20
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    • 2018-01-03
    相关资源
    最近更新 更多