php - 使用钩子替换 Woocommerce 中的星级
问题描述
启用后,每个 woocommerce 产品都有星级。我有一些自定义代码,我想完全替换当前的星级评分(包括“#customer reviews”部分。
目前,我使用的代码仅附加到星级,而不是完全替换它。下面是我看到的当前结果,以及我添加到functions.php 中的代码。先感谢您。
代码:
add_filter( 'woocommerce_get_star_rating_html', 'replace_star_ratings' );
function replace_star_ratings( $variable ) {
echo "XXX";
return $variable;
}
解决方案
要在不编辑模板的情况下完全替换产品的 Stars 评级,请使用以下命令:
// For single product pages
add_action( 'woocommerce_single_product_summary', 'custom_rating_single_product_summary', 4 );
function custom_rating_single_product_summary() {
global $product;
if ( $product->get_rating_count() > 0 ) {
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_rating', 10 );
add_action( 'woocommerce_single_product_summary', 'replace_product_rating', 9 );
}
}
// For Shop and archicves pages
add_action( 'woocommerce_after_shop_loop_item_title', 'custom_rating_after_shop_loop_item_title', 4 );
function custom_rating_after_shop_loop_item_title() {
global $product;
if ( $product->get_rating_count() > 0 ) {
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5 );
add_action( 'woocommerce_after_shop_loop_item_title', 'replace_product_rating', 5 );
}
}
// Content function
function replace_product_rating() {
global $product;
$rating_count = $product->get_rating_count();
$review_count = $product->get_review_count();
$average = $product->get_average_rating();
echo '<div class="woocommerce-product-rating">'. __("XXX", "woocommerce") . '</div>';
}
代码位于您的活动子主题(或活动主题)的 function.php 文件中。测试和工作。
推荐阅读
- r - 为什么在 Power BI 中运行我的 R 代码时收到这些错误消息?
- javascript - 将内部包含数组的对象数组更改为一个对象
- spring-boot - 我收到 SSL 异常 - “java.security.cert.CertificateException:找不到与 IP 地址 XXXX 匹配的主题替代名称”
- java - 使用泛型类型使 Field.get 类型安全
- c# - 在 WPF 中单击上下文菜单时如何获取画布中的鼠标位置?
- django - 如何填充(链式)相关下拉列表
- c# - 应用程序是否有 GUI 或在后台运行
- java - 如何使用 mockito 框架为 VoltDb 表和 VoltDb 结果编写模拟?
- .htaccess - 如何从 url 参数中获取?
- c++ - 从向量中删除重复元素的基本功能