我不只是想用钩子添加所有的自定义元数据,因为我需要对输出进行非常严格的控制。例如,对于在购物车页面中包含自定义域,下面的答案可以很好地工作:在Woocommerce购物车中显示自定义域的值&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 . '.';
如何访问和使用与特定产品关联的自定义域值?
第一个$product->id
将无法工作。所以您的问题是如何获得产品ID。
多例
1)在存档页面(如shop)或单品页面中:
$room = get_post_meta( get_the_id(), 'room', true );
global $product;
$room = get_post_meta( $product->get_id(), 'room', true );
global $post;
$room = get_post_meta( $post->ID, 'room', true );
2)对于购物车项目(来自购物车对象):
// Loop through cart items
foreach( WC()->cart->get_cart() as $cart_item ){
// Get the WC_Product object (instance)
$product = $cart_item['data'];
$product_id = $product->get_id(); // get the product ID
$room = get_post_meta( $product->get_id(), 'room', true );
## … / …
}
>
现在对于产品变体,如果您需要获取父变量产品ID,您将使用:
// Get the parent product ID (the parent variable product)
$parent_id = $cart_item['product_id'];
$room = get_post_meta( $parent_id, 'room', true );
## … / …
3)对于订单项目(来自已定义的WC_Order
对象$order
):
// Loop through cart items
foreach( $order->get_items() as $item ){
// Get the Product ID
$product_id = $item->get_product_id();
$room = get_post_meta( $product_id, 'room', true );
## … / …
}
// Loop through cart items
foreach( $order->get_items() as $item ){
// Get the parent Product ID
$product = $item->get_product();
$parent_id = $product->get_parent_id(); // The parent product ID
$room = get_post_meta( $parent_id, 'room', true );
## … / …
}
我试图显示从x-x的变化自定义价格跨度。 null
问题内容: 在Woocommerce中,我试图获取产品自定义属性值,但我失败了,我一无所获。 所以我尝试了: 我正在获取这些原始数据: 我知道有一个值,因为它显示在属性部分,但是我只是找不到一种方法来将其显示在我的自定义代码中。 问题答案: 编辑* : 自Woocommerce版本3起已弃用 * 按照@datafeedr在他的答案中写道: 甚至更紧凑: 原始答案:
在WooCommerce中,我试图获得产品自定义属性值,但我失败了,什么也得不到。 所以我试着: 我得到了这些原始数据: 我知道有一个值,因为它显示在属性部分,但我就是找不到一种方法用我的自定义代码显示它。
我试图在woocommerce中获得一个特定的自定义属性。我在这个网站上读了很多文章,其中提供了3-5种方法。在尝试了所有方法之后,对我来说唯一有效的方法就是循环所有属性——所有其他属性都不起作用。我有一个名为“pdfs”的自定义属性 以下尝试不起作用:(链接) 这是唯一的一个工作:(链接) 我更希望能够使用第一个选项之一。任何帮助都将不胜感激。谢谢
这就是我如何为产品变体添加管理自定义字段的方法: 保存产品变化的自定义字段保存: 将自定义字段值存储到变量数据中 该值保存并显示在单个产品页面中,但下面的函数不返回该值 尝试检索函数中自定义字段的值: 我需要得到的只是值(这是浮点数):
当我进入产品编辑页面时,有一个选项卡“属性”。在那里我可以设置属性名及其值。 我假设这就是在Woocommerce上为产品添加自定义属性的方式。 但是如何在循环中得到这个值呢? 我看到人们使用,但它希望我传递分类法和另一个参数数组。分类学是什么?我没有手动添加。论点是什么?