В WooCommerce я добавил новый пользовательский столбец «Язык» в список заказов администратора с пользовательскими значениями «Японский» или «Не японский».
Как добавить параметр фильтра для японского и неяпонского языков.
Я добавил раскрывающийся список фильтров, используя следующий код:
add_action( 'restrict_manage_posts', 'wpse45436_admin_posts_filter_restrict_manage_posts' );
function wpse45436_admin_posts_filter_restrict_manage_posts(){
global $post_type;
if( $post_type == 'shop_order' ) {
//change this to the list of values you want to show
//in 'label' => 'value' format
$values = array(
'Japanese' => 'Japanese',
'Non Japanese' => 'Non Japanese',
);
?>
<select name="ADMIN_FILTER_FIELD_VALUE">
<option value=""><?php _e('Filter By ', 'wose45436'); ?></option>
<?php
$current_v = isset($_GET['ADMIN_FILTER_FIELD_VALUE'])? $_GET['ADMIN_FILTER_FIELD_VALUE']:'';
foreach ($values as $label => $value) {
printf (
'<option value="%s"%s>%s</option>',
$value,
$value == $current_v? ' selected="selected"':'',
$label
);
}
?>
</select>
<?php
}
}
Я также добавил код для фильтрации списка заказов, но он не работает, вот мой код:
add_action( 'pre_get_posts', 'apply_my_custom_product_filters' );
function apply_my_custom_product_filters( $query ) {
global $pagenow;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
if ( $query->is_admin && $pagenow == 'edit.php' && isset( $_GET['ADMIN_FILTER_FIELD_VALUE'] ) && $_GET['ADMIN_FILTER_FIELD_VALUE'] != '' && $_GET['post_type'] == 'shop_order' ) {
$meta_key_query = array(
array(
'meta_key' => 'order_add_language',
'value' => esc_attr( $_GET['ADMIN_FILTER_FIELD_VALUE'] ),
'compare' => '=',
),
'posts_per_page' => 10,
'paged' => $paged,
);
$query->set( 'meta_query', $meta_key_query );
}
}