如何在foreach中使用return ?如果我在函数短代码上使用echo,短代码将显示在/div
表单的外部function produseselectate() {
global $woocommerce;
$items = $woocommerce->cart->get_cart();
foreach($items as $item => $values) {
$_product = wc_get_product( $values['data']->get_id());
echo "<b> Boxa:".$_product->get_title().'</b> <br> Cantitate: '.$values['quantity'].'<br>';
$price = get_post_meta($values['product_id'] , '_price', true);
echo " Pret: ".$price."<br>";
}
}
add_shortcode('boxecart', 'produseselectate');
如果使用return而不是echo,则购物车表中的内容将正确显示,但仅显示第一行和购物车中的第一个产品。
在这里你可以看到它是如何在
表单外显示短代码的您需要首先在循环的每次迭代中构建结果字符串,然后在函数末尾返回完整的结果字符串
function produseselectate()
{
global $woocommerce;
$items = $woocommerce->cart->get_cart();
$result = '';
foreach ($items as $item => $values) {
$_product = wc_get_product($values['data']->get_id());
$result .= "<b> Boxa:" . $_product->get_title() . '</b> <br> Cantitate: ' . $values['quantity'] . '<br>';
$price = get_post_meta($values['product_id'], '_price', true);
$result .= " Pret: " . $price . "<br>";
}
return $result;
}
add_shortcode('boxecart', 'produseselectate');