我正在使用Woocommerce注册课程;每个类/产品最多有20个自定义字段,我需要将其作为变量返回,以便高度自定义结帐和订单详细信息页面以及客户电子邮件模板 .
我只是想用钩子添加所有自定义元数据,因为我需要非常严格地控制输出 . 例如,以下答案适用于在购物车页面中包含自定义字段:Display Custom Field's Value in Woocommerce Cart & Checkout items
但是我希望它们在结帐时,订购详细信息和电子邮件,完全控制它们出现的HTML(在某些情况下,它们也需要转换,例如,Unix时间戳到人类可读时间) .
在 order-item-details.php
模板中,我尝试了以下内容:
$room = get_post_meta( $product->ID, 'room', true );
$room_number = get_post_meta( $product->ID, 'room_number', true );
$instructor = get_post_meta( $product->ID, 'instructor', true );
echo 'Your instructor is ' . $instructor . '.';
echo 'Your class is in ' . $room . '.';
但它不起作用......
如何访问和使用与特定产品关联的自定义字段值?
1 回答
首先 $product->ID 将无法正常工作 . So your problem is how to get the product ID.
Multiple cases
1)在商店或单个产品页面的存档页面中:
get_the_id()
将主要为您提供产品ID(帖子ID)$product
,您还可以将global $product;
与$product->get_id()
一起使用 .global $post;
与$post->ID
一起使用(如果未定义$post
):2)对于购物车物品(来自购物车对象):
3)对于订单商品(来自定义的
WC_Order
对象$order
):所以现在由你决定 .