Вы можете встроить код в функцию в виде короткого кода с аргументом id
(идентификатор продукта) :
add_shortcode( 'product_rating', 'display_product_rating' );
function display_product_rating( $atts ){
// Shortcode attributes (default)
$atts = shortcode_atts( array(
'id' => '0',
), $atts, 'product_rating' );
if ( get_option( 'woocommerce_enable_review_rating' ) === 'no' )
return; // Exit
global $product, $post;
if( ! is_a( $product, 'WC_product') ){
$product_id = $atts['id'] > 0 ? $atts['id'] : get_the_id();
$product = wc_get_product( $product_id );
if( ! is_a( $product, 'WC_product') )
return; // Exit
}
$rating_count = $product->get_rating_count();
$review_count = $product->get_review_count();
$average = $product->get_average_rating();
$output = '';
if ( $rating_count >= 0 ) {
$output .= wc_get_rating_html($average, $rating_count);
if ( comments_open() ) {
$fcount = $printf( _n( '%s',$review_count,'woocommerce' ), '<span class="count">' . esc_html( $review_count ) . '</span>' );
$output .= '<a href="'.get_permalink().'#reviews" class="woocommerce-review-link" rel="nofollow">('.$fcount.')</a>';
}
}
return $output;
}
Код входит вФайл function.php активной дочерней темы (или активной темы).Протестировано и работает.
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ:
1) В текстовом редакторе WordPress поста или страницы, определяя id
аргумент (идентификатор продукта) :
[product_rating id='37']
2) В некотором php-коде с dynamic $product_id
variable (код продукта) :
echo do_shortcode( "[product_rating id='$product_id']" );
3) Внутри цикла продукта WP_Query
или WC_Product_Query
:
echo do_shortcode( "[product_rating]" );