短代码显示在表单/div之外



如何在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');

最新更新