Woocommerce通过正确的产品分类更改销售价格

时间:2020-04-20 05:40:13

标签: php wordpress woocommerce price

帮我更改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 吗?

1 个答案:

答案 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;
}