添加到Woocommerce的自定义元数据未在订单项元中显示

档案保管员

我只有一个自定义元数据到WooCommerce订单,现在我想在结帐后在“谢谢”页面上显示此数据,但是该数据不可用。数据已保存并在管理员中可用,我似乎无法访问它。

function custom_order_item_meta( $item_id, $values ) {

    if ( ! empty( $values['custom_option'] ) ) {
        woocommerce_add_order_item_meta( $item_id, 'custom_option', $values['custom_option'] );           
    }
}
add_action( 'woocommerce_add_order_item_meta', 'custom_order_item_meta', 10, 2 );

但是当我转储时,wc_get_order我的元数据不存在。

我正在使用;

woocommerce_add_order_item_meta()保存数据但转储var_dump(wc_get_order( $order->id ));也不会显示我的自定义元字段

我应该使用另一个挂钩来访问此数据吗?

LoicTheAztec

您要查找的数据不是订单元数据,而是订单元数据,并且位于wp_woocommerce_order_itemmeta数据库表中(请参阅下面的如何访问此数据)

从woocommerce 3开始,一个更好的钩子替换了旧的woocommerce_add_order_item_meta钩子。

显示和可读的订单商品元数据:

要使自定义订单商品的元数据显示在各处,该元关键字应该是可读的标签名称,并且不能以下划线开头,因为该数据将显示在每个订单商品下

编码:

add_action( 'woocommerce_checkout_create_order_line_item', 'custom_order_item_meta', 20, 4 );
function custom_order_item_meta( $item, $cart_item_key, $values, $order ) {
    if ( isset( $values['custom_option'] ) ) {
        $item->update_meta_data( __('Custom option', 'woocommerce'), $values['custom_option'] );          
    }
}

在“收到的订单”(谢谢)页面中,您将获得类似以下内容的信息:

在此处输入图片说明

这也将显示在后端和电子邮件通知中。

要访问此订单商品数据,您需要在foreach循环中从订单对象获取商品:

foreach( $order->get_items() as $item_id => $item ){
    $custom_data = $item->get_meta( 'Custom option' );
}

要获取第一订单项(避免foreach循环),您将使用:

$items       = $order->get_items(); // Order items
$item        = reset($items); // The first Order item
$custom_data = $item->get_meta( 'Custom option' ); // Your custom meta data

相关:在Woocommerce 3.4中替换woocommerce_add_order_item_meta挂钩

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Woocommerce中将产品的自定义元数据添加到订单项

在WooCommerce中将订单商品自定义元数据自动添加到订单注释中

在Woocommerce 3中将自定义元数据添加到管理订单编辑页面

仅在WooCommerce管理订单上显示自定义订单项目元数据

更改订单项自定义元数据在 WooCommerce 管理订单中显示的标签和值

在WooCommerce中更新自定义订单项目元

将自定义购物车商品值添加到WooCommerce订单商品元数据

在Woocommerce 3中获取自定义订单项元数据

在Woocommerce 3中检索自定义订单项目元数据值

WooCommerce:将自定义元添加为隐藏订单项元以供内部使用

在Woocommerce打印发票和装箱单中显示订单自定义元数据

在Woocommerce 3中保存并显示订单自定义元数据

将自定义元数据添加到pdf

将WooCommerce订单项自定义字段总和保存为新的元数据

在Woocommerce中通过带有自定义元数据的Get请求将商品添加到购物车

在WooCommerce订单中添加到购物车自定义字段数据

在WooCommerce中将自定义字段添加为购物车项目元和订单项元

WooCommerce:添加隐藏的订单项元数据

在WooCommerce管理员订单页面上将产品自定义字段显示为订单项元

向Woocommerce订单项目添加自定义数据

将产品自定义字段值保存为WooCommerce中的自定义订单项元

在 Woocommerce 中访问和显示订单项元数据

在 WooCommerce PDF 发票和装箱单中的订单数据之后添加自定义元数据

下 WooCommerce 订单后,将一些数据添加到自定义数据库表中

在 WooCommerce 中添加产品自定义输入文本作为订单项目数据

将产品自定义字段另存为WooCommerce管理员手动订单的自定义订单项元数据

在woocommerce订单页面定制用户的元数据显示自定义列

在Woocommerce中保存并显示订单商品自定义元数据

在帐单地址后以WooCommerce管理员订单显示自定义元数据