【发布时间】:2020-05-21 20:22:18
【问题描述】:
我正在尝试为 woocommerce 制作一个插件,该插件在每个新订单中获取我需要的所有数据,在 foreach 循环中按项目拆分,然后通过 cURL 将每个项目数据作为单独的帖子发送。但我的代码似乎并没有忽略 foreach 循环。这是我的循环的代码:
add_action('woocommerce_new_order', 'wdm_send_order_to_ext');
function wdm_send_order_to_ext( $order_id ){
// get order object and order details
$order = wc_get_order($order_id);
print_r(" Start ");
if($order->get_items()>0)
{
print_r(" Item exist ");
foreach($order->get_items() as $item_id => $item_data){
print_r(" Foreach loop executing for item ID: $item_id ");
}
}
else
{
print_r(" No Item ");
}
print_r(" End ");
}
我的结果是:开始项目存在结束 编辑:当我在 $order->get_items() 上使用 print_r 时,它打印为 大批 ( )
【问题讨论】:
-
你好,请问
$order变量有没有数据?或者你确定钩子在正确的时间执行? -
我测试了 $order 有数据并且钩子执行成功。我之前 cURL 请求在循环之外,我可以访问订单和它包含的其他数据:地址、姓名、ID、电子邮件、电话、运输成本等......
-
另一件事是你检查控制器至少进入foreach循环了吗?
-
当我在循环中放一个回声时,什么都没有出来。
-
删除循环内的所有内容,只添加单个回显语句并在回显后立即退出然后看看会发生什么?
标签: php wordpress woocommerce foreach