Я добавил пару пользовательских полей столбцов в наш список Woocommerce
заказов в админом WordPress, используя следующие методы, но вроде не работает ....WooCommerce сортные колонны не работает
add_filter('manage_edit-shop_order_columns', 'my_wc_columns');
function my_wc_columns($columns){
$new_columns = (is_array($columns)) ? $columns : array();
unset($new_columns['order_actions']);
$new_columns['program_id'] = 'Program';
$new_columns['constituent_id'] = 'Constituent ID';
$new_columns['order_actions'] = $columns['order_actions'];
return $new_columns;
}
add_action('manage_shop_order_posts_custom_column', 'my_wc_column_values', 2);
function my_wc_column_values($column){
global $post;
if ($column == 'program_id') {
$program = get_post_meta($post->ID, '_program_id', true);
$program_title = get_the_title($program);
$column_val = (isset($program) && $program>0 ? $program_title : 'All');
echo '<span>' . my_programs_get_name($column_val) . ' (' . $program . ')</span>';
}
if ($column == 'constituent_id') {
$consid = get_post_meta($post->ID, 'constituent_id', true);
$column_val = (isset($consid) && $consid != "") ? $consid : "";
echo '<span>' . $column_val . '</span>';
}
}
// Make column sortable
add_filter("manage_edit-shop_order_sortable_columns", 'my_wc_column_sort');
function my_wc_column_sort($columns) {
$custom = array(
'program_id' => '_program_id',
'constituent_id' => 'constituent_id',
);
return wp_parse_args($custom, $columns);
}
Я ожидал, что у вас есть проблема с именем программы, так как это идентификатор, который нужно перевести с помощью настраиваемой функции в имя, но ни один столбец не сортируется правильно. Записи меняют порядок после нажатия на заголовки столбцов, но я не могу сказать, как выполняется сортировка. Программа не сортируется по имени или идентификатору, и оба кажутся случайными, но последовательными. Имейте в виду, что оба поля - это настраиваемые поля, которые могут иметь или не иметь определенное значение. Как я могу сделать эту сортировку?
Очень хорошо, вы всегда даете мне правильные указатели, спасибо. У меня есть одна проблема, если вы могли бы помочь. Сортировка работает, но она отфильтровывает любые значения пустой мета. Одной из основных причин, по которым я хочу сортировать по этому столбцу, является сортировка пробелов для определения значений потребности. – rwfitzy
Добро пожаловать. Сортировка элементов со значением и без значения может быть очень сложной. У меня есть * код, который * может * работать. Я не тестировал его и должен проверить, что у меня его еще нет. – helgatheviking