Сумма пользовательских значений из 2 пользовательских полей - PullRequest
0 голосов
/ 06 марта 2020

Я создаю код, подобный этому.

Если пользовательское поле 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.

Мне нравится приведенный выше простой код. Кто-нибудь знает, почему сумма итоговой цены становится странной?

1 Ответ

1 голос
/ 06 марта 2020

Учитывая ваш код, пожалуйста, знайте, что вы пытаетесь вычесть массив pu sh из числа здесь: $total-price[], это неверный синтаксис и приведет к ошибкам. Помимо всего прочего, вот правильный способ проверки пользовательских полей и определения общей цены соответственно. Комментарии говорят сами за себя:

<?php 
// Get Post Object(s)
$my_posts = get_posts( $args );
// Loop each Post
foreach($my_posts as $post) {
    // Initial Price is Zero.
    $total_price = 0;
    // 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;
    }
    // Use $total_price as you want 
    echo number_format($total_price );
}

// Out of Post l oop

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...