gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 03:54:50 24 4
gpt4 key购买 nike

我用一堆自定义元数据创建了我的 woocommerce 产品(水果和蔬菜),我可以在我的网站上正确输入和显示它们。其中一个数据是单位(即千克、6 盒等)。

管理订单页面,我想在产品名称的正下方显示这个“单位”字段(例如:草莓 - 千克/鸡蛋 - 6 盒等) .

我尝试了以下代码并得到了以下结果(见屏幕截图):

add_action( 'woocommerce_before_order_itemmeta', 'unit_before_order_itemmeta', 10, 3 );
function unit_before_order_itemmeta( $item_id, $item, $_product ){
if( $unit = $_product->get_meta('unite') ) {
echo '<p>'.$unit.'</p>';}
}

结果如下: Screemshot single order page=> 元字段“单位”在每个产品下正确显示,但由于某种原因它破坏了页面并且我在页面底部有一条严重错误消息(以红色突出显示)。

我在这里阅读了很多关于捕获和显示(返回、打印...)我的元数据的不同方式的文章,但我总是遇到这个严重错误。

有人可以帮助我了解我的代码有什么问题吗?

最佳答案

您需要仅针对订单“行”项目和管理以避免错误,如下所示:

add_action( 'woocommerce_before_order_itemmeta', 'unit_before_order_itemmeta', 10, 3 );
function unit_before_order_itemmeta( $item_id, $item, $product ){
// Only "line" items and backend order pages
if( ! ( is_admin() && $item->is_type('line_item') ) ) return;

$unit = $product->get_meta('unite');
if( ! empty($unit) ) {
echo '<p>'.$unit.'</p>';
}
}

它现在应该可以更好地工作而不会出现错误。

关于php - 在 WooCommerce 管理订单页面上将产品自定义字段显示为订单项元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64066608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com