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

Display specific highest custom field value from cart items in WooCommerce

我在 WooCommerce 中使用高级自定义字段插件,我的 WooCommerce 产品有一个自定义字段 get_post_meta( get_the_ID(), "lead_time", true );"。当有人检查此字段时,会显示 交货时间[=如果缺货,每个产品 34=]。

我需要从所有购物车商品/订单商品中找到最长的“交货时间”,然后将该数字显示为订单的最终交货时间。

以下代码显示购物车中所有产品的交货时间:

foreach ( WC()->cart->get_cart() as $cart_item ) {
    $leadTimes = get_post_meta($cart_item['product_id'] , 'lead_time', true );
    echo $leadTimes;
}

例如 cart/order 中有 3 个产品:

  • 第一个有 7 天的交货时间,
  • 第二个提前期为 14 天,
  • 第三个提前期为 7 天。

但是显示7147.

我需要显示 “交货时间 = 14 天”,因为 14 是购物车中 3 件商品的最长交货时间。我已经尝试了 3 天以来我能想到的使用上述 foreach 循环的所有可能组合。有很多不同的结果,但不是我需要的。

如有任何帮助,我们将不胜感激。

使用 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>';