我有一个woocommerce的短代码,显示客户下的所有订单,它可以正常工作.然而,我得到了一段代码,它给了我以下信息:
在/home/vwzidcur/public_html/wp content/themes/astra child/woocommerce/woo shortcode中进行Notice:个数组到字符串的转换.第67行.在我文件的第67行,我有echo.
通过谷歌搜索和阅读官方php手册,我得出结论,这个问题可以通过内爆或使用foreach迭代$downloads数组来解决.我试过了,但没能.我对这方面还比较陌生,任何帮助都将不胜感激.
$customer = wc_get_orders(['customer_id' => get_current_user_id(),]);
foreach ( $customer as $order ) {
foreach ( $order->get_items() as $item_id => $item ) {
$downloads = $order->get_downloadable_items();
if ($downloads){
wc_get_template(
'button-downloads-dashboard.php',
array(
'downloads' => $downloads,
));
}
echo '<div class="container_orders_img"> '. $downloads .' </div>';
}}
为了使问题简洁明了,我只输入了相关代码的一部分,省略了相信不应该影响的内容.不管怎样,这里是完整的代码:https://onecompiler.com/php/3xywvxhw7
Solution:多亏了Michael Krikorev,我找到了这个似乎有效的解决方案.它不会返回任何错误、警告或通知消息.
// Get product download button
$downloads = $order->get_downloadable_items();
if(is_array($downloads)){
foreach($downloads as $product){
$new_var = '<a href="'. $product['download_url'] .'" target="_blank">Download</a>';
}}
echo '<div class="container_orders_download"> '. $new_var .' </div>'