Фильтр Woocommerce по размерам пола (ширина * длина) на странице товаров? - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь создать пользовательский фильтр для измерений товаров на странице продуктов 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 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...