Как вывести счетчик отзывов о товаре с разных языков Polylang?
Добрый день, товарищи специалисты
Захотелось мне видеть на странице архивов товара кол-во отзывов.
Пришаманил в woocommerce > templates > loop > rating.php следующий код:
<?php /** * Loop Rating * * This template can be overridden by copying it to yourtheme/woocommerce/loop/rating.php. * * HOWEVER, on occasion WooCommerce will need to update template files and you * (the theme developer) will need to copy the new files to your theme to * maintain compatibility. We try to do this as little as possible, but it does * happen. When this occurs the version of the template file will be bumped and * the readme will list any important changes. * * @see https://woo.com/document/template-structure/ * @package WooCommerceTemplates * @version 3.6.0 if ( ! defined( 'ABSPATH' ) ) { exit; } global $product; if ( ! wc_review_ratings_enabled() ) { return; } echo wc_get_rating_html( $product->get_average_rating() ); // WordPress.XSS.EscapeOutput.OutputNotEscaped. */ if ( ! defined( 'ABSPATH' ) ) { exit; } global $product; if ( ! wc_review_ratings_enabled() ) { return; } $count_answered = 0; if( class_exists( 'CR_Qna' ) ) { $count_answered = CR_Qna::get_count_answered( $product->get_id() ); } $rating_count = $product->get_rating_count(); $review_count = $product->get_review_count(); $average = $product->get_average_rating(); echo '<span class="review-rating">'; echo wc_get_rating_html( $average, $rating_count ); // WordPress.XSS.EscapeOutput.OutputNotEscaped. if( 0 < $rating_count ) { printf( _n( '%s review', '%s reviews', $review_count, 'customer-reviews-woocommerce' ), '<span class="count1">' . esc_html( $review_count ) . '</span>' ); } echo '</span>'; |
<?php /** * Loop Rating * * This template can be overridden by copying it to yourtheme/woocommerce/loop/rating.php. * * HOWEVER, on occasion WooCommerce will need to update template files and you * (the theme developer) will need to copy the new files to your theme to * maintain compatibility. We try to do this as little as possible, but it does * happen. When this occurs the version of the template file will be bumped and * the readme will list any important changes. * * @see https://woo.com/document/template-structure/ * @package WooCommerceTemplates * @version 3.6.0 if ( ! defined( 'ABSPATH' ) ) { exit; } global $product; if ( ! wc_review_ratings_enabled() ) { return; } echo wc_get_rating_html( $product->get_average_rating() ); // WordPress.XSS.EscapeOutput.OutputNotEscaped. */ if ( ! defined( 'ABSPATH' ) ) { exit; } global $product; if ( ! wc_review_ratings_enabled() ) { return; } $count_answered = 0; if( class_exists( 'CR_Qna' ) ) { $count_answered = CR_Qna::get_count_answered( $product->get_id() ); } $rating_count = $product->get_rating_count(); $review_count = $product->get_review_count(); $average = $product->get_average_rating(); echo '<span class="review-rating">'; echo wc_get_rating_html( $average, $rating_count ); // WordPress.XSS.EscapeOutput.OutputNotEscaped. if( 0 < $rating_count ) { printf( _n( '%s review', '%s reviews', $review_count, 'customer-reviews-woocommerce' ), '<span class="count1">' . esc_html( $review_count ) . '</span>' ); } echo '</span>';
В результате счетчик то я получил, только выводит он количество отзывов о товаре на активном языке сайта. Хотелось бы что бы он выводил сумму отзывов о товаре всех языковых версий.
Буду рад любым подсказкам
Дополнительно:
можно попробовать с помощью id из $product и pll_get_post_translations($post_id) получить список всех версий страницы. Если сработает, то потом их в цикле перебрать и с помощью какой-нибудь из функций wc создавать объект product из этих id страниц. Потом дублировать $product->get_rating_count() и тд, только сохранять общую сумма где-то вне цикла, чтобы потом уже с общими числами работать при выводе
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос