当前位置: 首页 > 知识库问答 >
问题:

处理后在订单中显示产品自定义字段值

魏松
2023-03-14

在woocommerce上,我使用以下代码在购物车和结账时呈现一些产品自定义字段:

add_filter( 'woocommerce_get_item_data', 'rendering_meta_field_on_cart_and_checkout', 10, 2 );

function rendering_meta_field_on_cart_and_checkout( $cart_data, $cart_item ) {
    $custom_items = array();

    if( !empty( $cart_data ) ) {
        $custom_items = $cart_data;
    }
    if( isset( $cart_item['wccpf_enter_product_id'] ) ) {

        $diamond = $cart_item['wccpf_enter_product_id'];

        $pacolor = get_the_terms($diamond, 'pa_color');
        foreach ( $pacolor  as $pacolor  ) {
           $color= $pacolor ->name;
        }


        $custom_items[] = array( "name" => "color", "value" => $color);
    }
    return $custom_items;
}

如何在订单中显示自定义产品字段wccpf_输入_product_id'值?

谢谢

共有1个答案

阮梓
2023-03-14

您可以使用挂接在woocommerce\u add\u order\u item\u meta action钩子中的自定义函数来实现这一点。

您首先需要在产品中添加一个属性,以便为将显示为订单项元数据的自定义字段值获取“可读的干净标签”。

为此,您必须首先创建一个属性,然后在产品中使用任何值设置它(因为您将在下面的代码中替换该值)。

请看这里有关该过程的更多解释…

您必须将我的代码中的'custom\u field\u key'替换为您在wp\u order\u itemmetaMySQL表中找到的特定自定义密钥,以获得您特定订单ID的对应项目ID。
要找到订单对应的项目ID,您可以使用订单ID在wp\u woocommerce\u order\u itemsMySQL表中搜索…

您还必须设置正确的属性slug,而不是'pa\u your\u attribute',以便在订单中显示此自定义字段值的正确标签文本
(见下文其他类似答案和参考资料)。

所以你的代码是这样的:

// ADD THE INFORMATION AS META DATA SO THAT IT CAN BE SEEN AS PART OF THE ORDER
add_action('woocommerce_add_order_item_meta','add_and_update_values_to_order_item_meta', 1, 3 );
function add_and_update_values_to_order_item_meta( $item_id, $item_values, $item_key ) {

    // Getting your custom product ID value from order item meta
    $custom_value = wc_get_order_item_meta( $item_id, 'custom_field_key', true );

    // Here you update the attribute value set in your simple product
    wc_update_order_item_meta( $item_id, 'pa_your_attribute', $custom_value );
    }
}

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

这应该行得通

有关答案:

>

将自定义产品数据动态添加为订单上的项目元数据

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

 类似资料:
  • 这个问题是关于如何在WooCommerce订单中显示产品自定义字段(自定义SKU)的,这是对我前面问题的回答。 如何使产品自定义字段(自定义SKU)仅在每个订单项目的管理订单编辑页面中可见? 此外,它不适用于手动订单。如何在手动订单上显示产品自定义字段(自定义SKU)?

  • 是否有一种方法可以在WooCommerce订单页面的每个产品下显示我的自定义SKU? 当我编辑产品时,自定义sku显示良好,但它不会显示在产品的订单页面中。我需要在订单上显示此信息,以便Zapier可以将其与产品的Visma帐户软件ArticleID匹配。 此尝试基于如何向WooCommerce产品添加(第二个)自定义sku字段的解决方案?

  • 以下仅在WooCommerce Admin single orders中显示产品自定义字段回答我的上一个问题,其中: 添加自定义SKU字段(ArticleID) 将自定义SKU(ArticleID)保存为隐藏订单项元数据 将自定义SKU(ArticleID)保存为手动订单的隐藏订单项元数据 然而,最后一部分(手动订单)似乎与我为网关费用添加的其他自定义代码相冲突: 当我尝试更新或更改已应用网关费用

  • 我创建了一些代码来显示woocommerce上的库存可用性 问题是,如果我更改了自定义字段文本,那么所有以前的订单都会用新的自定义字段文本更新。 例如:一个客户在2021年1月确认了一个产品的订单,其中自定义字段文本是“产品将在2021年3月提供”。第二客户在2021年3月确认了相同的产品订单,其中新的自定义字段文本是“产品将在2021年5月提供”。 两份订单都显示了最后一个自定义字段文本“产品将

  • 我成功地在后端的产品变化中的WooCommerce中创建了一个ACF自定义字段。该字段在每个变化中正确显示。 但是在编辑变体中的此字段或其他字段后,我无法再保存整个变体选项卡。加载/保存指示器圆圈继续无限旋转。并且定制字段未显示在前端的单个产品变体中。 我所做的是将以下代码添加到我的: 任何帮助都将不胜感激。

  • 我使用的是一个自定义的帖子类型和集成的woocommerce,我可以在页面上添加一个AddtoCart按钮,并可以将其添加到cart,所以效果很好 这是我的密码 但现在我需要在产品页面上添加一些自定义字段,一个包含颜色“黑色”和“白色”的下拉列表,这只是一个普通的下拉列表。当我选择一个将在购物车上显示在产品名称下的值时,我该怎么做