Итак, вот такой вот код в Functions.php:
add_filter('woocommerce_get_catalog_ordering_args', 'wcs_get_catalog_ordering_args');
function wcs_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 ('defaultt' === $orderby_value) {
$args['orderby'] = 'meta_value';
$args['meta_key'] = '_pointss';
$args['order'] = 'DESC';
}
return $args;
}
Должен сортировать товары по мета полю _pointss таким образом, чтобы выходили в топ архива (стр. категории) с самым большим значением (на данный момент, самое высокое значение - 4254). Однако в топ попадают в первую очередь товары с значением поля "99", "991", "98", так далее.
Полагаю, надо сделать конвертирование значения из string в integer, наверное тогда будет работать корректно. Но как это сделать? Или я не прав?