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

Posted

技术标签:

【中文标题】Woocommerce 我的帐户页面为新客户运行了一个额外的循环【英文标题】:Woocommerce my account page runs an extra loop for new customers 【发布时间】:2021-12-16 13:52:12 【问题描述】:

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

经过测试,只有当我使用相关帐户下订单时,该错误才会消失。

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

<?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-&gt;get_items()是否都被赋值,并且在foreach循环之前还要检查get_items()数组长度 【参考方案1】:

不确定这是从哪里来的,但它正在尝试循环通过 $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;

让我知道它是否适合你!

【讨论】:

非常感谢!!错误已解决

以上是关于Woocommerce 我的帐户页面为新客户运行了一个额外的循环的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress登录页面重定向到普通用户的Woocommerce我的帐户页面

从 WooCommerce 的“客户”角色中隐藏我的帐户中的帐户资金充值

检测 WooCommerce“我的帐户”页面的仪表板

Woocommerce 如何在我的帐户页面上重定向自定义端点

WooCommerce:将端点分配给我的帐户页面中的自定义模板

在 WooCommerce 中为新客户订单添加订单备注