我正在使用以下代碼在woocommerce中進行自定義排序。這工作正常。唯一的是我必須根據數字進行排序。我已經使用meta_type = UNSIGNED
但這不起作用。使用woocommerce在自定義排序中添加meta_type
add_filter('woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args');
function custom_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 ('timer' == $orderby_value) {
$args['meta_key'] = '_auction_dates_to_time';
$args['meta_type'] = 'UNSIGNED';
$args['orderby'] = "meta_value";
$args['order'] = 'ASC';
$args['paged'] = $paged;
}
if ('timer-desc' == $orderby_value) {
$args['meta_key'] = '_auction_dates_to_time';
$args['meta_type'] = 'UNSIGNED';
$args['orderby'] = "meta_value";
$args['order'] = 'DESC';
$args['paged'] = $paged;
}
return $args;
}
add_filter('woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby');
add_filter('woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby');
function custom_woocommerce_catalog_orderby($sortby) {
$sortby['timer'] = 'Sort by Bid End Time: low to high';
$sortby['timer-desc'] = 'Sort by Bid End Time: high to low';
return $sortby;
}
請幫我解決這個問題。
謝謝