帮我更改woocommerce /中的产品销售价格/ 我使用钩子:
add_filter('woocommerce_product_get_price', [$this, 'productGetPrice'], 10, 2);
add_filter('woocommerce_product_get_sale_price', [$this, 'productGetSalePrice'], 10, 2);
add_filter('woocommerce_product_variation_get_sale_price', [$this, 'productGetSalePrice'], 10, 2);
add_filter('woocommerce_product_get_date_on_sale_from', [$this, 'productGetSalePriceFrom'], 10, 2);
add_filter('woocommerce_product_get_date_on_sale_to', [$this, 'productGetSalePriceTo'], 10, 2);
它有效https://i.imgur.com/GCo8yfT.png。但是在woocommerce wc_product_meta_lookup 表中,我看到旧价格和产品分类不正确。我应该为每个要更改销售价格的产品更改元 _price 吗?
答案 0 :(得分:0)
在您的theme / functions.php文件中添加代码
在此代码中:选择按价格排序(从低到高/从高到低)后,排序结果是按售价排序。
add_filter( 'relevanssi_orderby', 'woocommerce_relevanssi_orderby' );
function woocommerce_relevanssi_orderby( $orderby ) {
if ( in_array( $orderby, array( 'price', 'price-desc' ), true ) ) {
global $wp_query;
$orderby = 'meta_value_num';
$wp_query->query_vars['meta_key'] = '_sale_price';
}
if ( 'date ID' === $orderby ) {
global $wp_query;
$orderby = 'post_date';
}
if ( 'popularity' === $orderby ) {
global $wp_query, $rlv_wc_order;
$orderby = 'meta_value_num';
$rlv_wc_order = 'desc';
$wp_query->query_vars['meta_key'] = 'total_sales';
}
return $orderby;
}
add_filter( 'relevanssi_order', 'woocommerce_relevanssi_order' );
function woocommerce_relevanssi_order( $order ) {
global $rlv_wc_order;
if ( $rlv_wc_order ) {
$order = $rlv_wc_order;
}
return $order;
}