Как я могу отредактировать вывод оценок в woocommerce, чтобы удалить текст и просто как звезды без использования css

#wordpress #templates #rating-system

Вопрос:

Я новичок в кодировании и wordpress/woocommerce и пытаюсь найти простой способ редактирования выходных wc_get_rating_html данных .

На данный момент он выводит следующее:

 function wc_get_rating_html( $rating ) { 
    if ( $rating > 0 ) { 
        $rating_html = '<div class="star-rating" title="' . sprintf( esc_attr__( 'Rated %s out of 5', 'woocommerce' ), $rating ) . '">'; 
        $rating_html .= '<span style="width:' . ( ( $rating / 5 ) * 100 ) . '%"><strong class="rating">' . $rating . '</strong> ' . esc_html__( 'out of 5', 'woocommerce' ) . '</span>'; 
        $rating_html .= '</div>'; 
    } else { 
        $rating_html = ''; 
    } 
    return apply_filters( 'woocommerce_product_get_rating_html', $rating_html, $rating ); 
} 
 

Я просто хочу вывести звездный рейтинг, а не текст, который идет до и после. Любые предложения о том, как я могу это сделать, поскольку я не могу редактировать файл шаблона. Спасибо

Ответ №1:

WordPress использует фильтры, которые позволяют вам заменять и/или изменять вывод того, что обрабатывает фильтр. Вот полный блок для wc_get_rating_html функции:

 function wc_get_rating_html( $rating, $count = 0 ) {
    $html = '';

    if ( 0 < $rating ) {
        /* translators: %s: rating */
        $label = sprintf( __( 'Rated %s out of 5', 'woocommerce' ), $rating );
        $html  = '<div class="star-rating" role="img" aria-label="' . esc_attr( $label ) . '">' . wc_get_star_rating_html( $rating, $count ) . '</div>';
    }

    return apply_filters( 'woocommerce_product_get_rating_html', $html, $rating, $count );
}
 

В вашем примере woocommerce_product_get_rating_html является именем фильтра и принимает три аргумента:

$rating_html который представляет собой вывод, который видит пользователь

$rating каков числовой рейтинг

$count это общее количество рейтингов.

Если вы хотите заменить вывод, вам нужно будет подключиться к фильтру woocommerce_product_get_rating_html с помощью функции, которая вернет измененное содержимое. Вам определенно нужно будет просмотреть крючки и фильтры и то, как они работают в WordPress, если вы не знакомы с использованием крючков и фильтров в WordPress.