为了账号安全,请及时绑定邮箱和手机立即绑定

显示 WooCommerce 中购物车项目的特定最高自定义字段值

显示 WooCommerce 中购物车项目的特定最高自定义字段值

PHP
慕仙森 2023-09-08 10:29:21
我正在 WooCommerce 中使用高级自定义字段插件,并且我的 WooCommerce 产品有一个自定义字段get_post_meta( get_the_ID(), "lead_time", true );“。当有人结帐时,此字段会显示每个产品的交货时间(如果缺货)。我需要从所有购物车商品/订单商品中找到最高的“交货时间”,然后将该数字显示为订单上的最终交货时间。以下代码显示购物车中所有产品的交货时间:foreach ( WC()->cart->get_cart() as $cart_item ) {    $leadTimes = get_post_meta($cart_item['product_id'] , 'lead_time', true );    echo $leadTimes;}例如,购物车/订单中有 3 个产品:第一个有 7 天的交货时间,第二个的交货时间为 14 天,第三个的交货时间为 7 天。但它显示 7147。我需要显示“交货时间 = 14 天”,因为 14 是购物车中 3 件商品的最长交货时间。我已经尝试了所有我能想到的使用上面的 foreach 循环的可能组合,已经 3 天了。有很多不同的结果,但不是我需要的结果。任何帮助将不胜感激。
查看完整描述

1 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

使用 php 函数尝试以下操作max():


$lead_time = array(); // Initializing


// Loop through cart items

foreach ( WC()->cart->get_cart() as $cart_item ) {

    $lead_time[] = get_post_meta( $cart_item['product_id'], 'lead_time', true);

}


echo '<p>Max Lead time: ' . max($lead_time) . ' days</p>';

您将获得最大值(显示的)。


或者当您使用高级自定义字段时,这也应该有效:


$lead_time = array(); // Initializing


// Loop through cart items

foreach ( WC()->cart->get_cart() as $cart_item ) {

    $lead_time[] = get_field('lead_time', $cart_item['product_id']);

}


echo '<p>Max Lead time: ' . max($lead_time) . ' days</p>';


查看完整回答
反对 回复 2023-09-08
  • 1 回答
  • 0 关注
  • 69 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信