Woocommerce在产品页面中按地板尺寸(宽*长)过滤吗?

时间:2019-03-26 00:34:17

标签: php wordpress woocommerce

我正在尝试为Woocommerce产品页面中的产品尺寸创建自定义过滤器。我找不到一种方法来做任何数学运算以完成基于地板尺寸(宽*长)的过滤。

function woocommerce_catalog_orderby( $orderby ) {

    $orderby['heaviest'] = __( 'Heaviest first', 'woocommerce' );
    $orderby['lightest'] = __( 'Lightest first', 'woocommerce' );
    $orderby['biggest'] = __( 'Biggest first', 'woocommerce' );
    return $orderby;
}
add_filter( "woocommerce_catalog_orderby", "woocommerce_catalog_orderby", 20 );
function woocommerce_get_catalog_ordering_args( $args ) {
    $orderby_value = isset( $_GET['orderby'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );

    if ( 'heaviest' == $orderby_value ) {
        $args['meta_key'] = '_weight';
        $args['orderby'] = 'meta_value_num';
        $args['order']   = 'DESC';
    }

    if ( 'lightest' == $orderby_value ) {
        $args['meta_key'] = '_weight';
        $args['orderby'] = 'meta_value_num';
        $args['order']   = 'ASC';
    }

    if ( 'biggest' == $orderby_value ) {
        $math='_length' * '_width';

        $args['meta_key'] = $math;
        $args['orderby'] = 'meta_value_num';
        $args['order']   = 'DESC';
    }

    return $args;
}
add_filter( 'woocommerce_get_catalog_ordering_args', 'woocommerce_get_catalog_ordering_args', 20 );

0 个答案:

没有答案