Объединение двух звездных рейтингов продуктов с foreach в Woocommerce - PullRequest
0 голосов
/ 13 июня 2018

Возможно, есть лучший способ сформулировать вопрос, но я работаю с тем, что знаю.

В Woocommerce я пытаюсь получить _wc_rating_count для каждой звезды (1-5),но и для двух продуктов;тогда я хочу совместить тему;Например, я объединяю обзоры двух продуктов на одной странице в одном графике.

Я делаю это следующим образом:

$product_id = array( 2146, 2166 );
$ratings = array(5, 4, 3, 2, 1);

foreach ($product_id as $pid) :

    $product = wc_get_product($pid);

    foreach ($ratings as $rating) :

        $rating_count = $product->get_rating_count($rating);
        $percentage = ($rating_count / $count) * 100 . "%";

        //echo $rating_count . '<br/>';

    endforeach;

endforeach;

Проблема в том, что я получаю массивиз 10 предметов (2 товара х 5 звездных оценок (5,4,3,2,1)), и мне нужно, чтобы эти значения были объединены.

11
1
0
0
2
8
0
0
0
1

Где мне нужно, чтобы это было

19
1
0
0
3

Знаете ли вы, как я могу получить два массива из встроенных foreach и объединить их на основе массива $ рейтинги?

Спасибо за вашу помощь:)

1 Ответ

0 голосов
/ 13 июня 2018

Итак, вот чего вы хотели бы достичь:

$product_ids = array( 2146, 2166 );
$ratings = array(5, 4, 3, 2, 1);
$rate_countings = array();

foreach ($product_ids as $pid){

    $product = wc_get_product($pid);

    foreach ($ratings as $rating){

        $rating_count = $product->get_rating_count($rating);
        //$percentage = ($rating_count / $count) * 100 . "%";

        if( !isset($rate_countings[$rating]) ){
            $rate_countings[$rating] = 0;
        }
        $rate_countings[$rating] += $rating_count;

    }

}

var_dump($rate_countings);
...