Woocommerce 我的帐户页面为新客户运行一个额外的循环

Woocommerce my account page runs an extra loop for new customers

我的 woocommerce 商店的“我的帐户”页面出现问题。事实上,当我使用从未下过订单的新客户帐户登录时,我的仪表板显示容器消失的错误。

经测试,只有在问题账号下单,bug才会消失

经过一系列测试后,产生该错误的代码如下(显示连接用户的最后一条命令):

<?php foreach ($last_order->get_items() as $item) :
  $product   = $item->get_product(); 
  $thumbnail = $product->get_image(array(50, 50));
  if ($product->get_image_id() > 0) {
    $item_name = '<div class="item-thumbnail">' . $thumbnail . '</div>'; // You had an extra variable here
  }
  echo $item_name . $item->get_name();
        endforeach;
?>

你知道这可能来自哪里吗?

提前,非常感谢您的帮助。

不确定这是从哪里来的,但它试图遍历 $last_order 变量。

因此,为了防止从未下过订单的用户从 运行 循环(这意味着 $last_order 为假),您可以将其包装在 if 语句中并检查 $last_order 是否为假,如下所示:

if($last_order){
  foreach ($last_order->get_items() as $item) :
    $product   = $item->get_product(); 
    $thumbnail = $product->get_image(array(50, 50));
    if ($product->get_image_id() > 0) {
      $item_name = '<div class="item-thumbnail">' . $thumbnail . '</div>'; // You had an extra variable here
    }
    echo $item_name . $item->get_name();
  endforeach;
}

让我知道它是否适合你!