Я создаю код, подобный этому.
Если пользовательское поле price1 существует, установите его в $ total-price. Иначе, если поле cusotm price2 существует, установите его в $ total-price.
Затем рассчитайте сумму $ total-price.
Я сделал этот код, но вернул 0.
<?php $my_posts = get_posts( $args );
$sum = 0;
foreach($my_posts as $p) {
if(post_custom('price1')){
$total-price[] = get_post_meta( $p->ID, 'price1', true );}
elseif(post_custom('price2')){
$total-price[] = get_post_meta( $p->ID, 'price2', true );}
$sum += $total-price;
}
echo number_format($total-price);
?>
Кто-нибудь знает, что не так с моим кодом?
Я сделал этот код, следуя совету ниже.
<?php
// Get Post Object(s)
$my_posts = get_posts( $args );
// Initial Price is Zero.
$sum = 0;
// Loop each Post
foreach($my_posts as $post) {
// Fetch Custom Fields
$price1 = get_post_meta( $post->ID, 'price1', true );
$price2 = get_post_meta( $post->ID, 'price2', true );
// Set Total Price to price1 if its set
if(!empty($price1) && is_numeric($price1)) {
$total_price = $price1;
}
// Change to price 2 if it exists
if(!empty($price2) && is_numeric($price2)) {
$total_price = $price2;
}
$sum +=$total_price;
}
// Use $total_price as you want
echo number_format($sum);
Теперь, $ total_price показывает что-то странное. Я устанавливаю только 1 мета, например, 200, $ price1, а затем $ sum становится 600. Когда я удаляю 200, он возвращает 0.
Мне нравится приведенный выше простой код. Кто-нибудь знает, почему сумма итоговой цены становится странной?