/**
* Add Sortable
*
*/
// Add a custom column to the WooCommerce orders table
function custom_order_column_head($columns) {
$new_columns = array();
foreach ($columns as $key => $value) {
$new_columns[$key] = $value;
if ($key === 'order_status') {
$new_columns['contains_category'] = '訂單類別';
}
}
return $new_columns;
}
add_filter('manage_edit-shop_order_columns', 'custom_order_column_head', 20);
// Populate the custom column with data
function custom_order_column_content($column, $post_id) {
if ($column === 'contains_category') {
$order = wc_get_order($post_id);
$contains_category = false;
// Check if the order contains products from a specific category
foreach ($order->get_items() as $item) {
$product = $item->get_product();
$categories = get_the_terms($product->get_id(), 'product_cat');
foreach ($categories as $category) {
// Replace 'your-category-slug' with the slug of the category you want to check
if ($category->slug === 'staff') {
$contains_category = true;
break;
}
}
}
echo $contains_category ? '員購訂單' : '';
}
}
add_action('manage_shop_order_posts_custom_column', 'custom_order_column_content', 10, 2);
// Make the custom column sortable
function custom_order_column_sortable($columns) {
$columns['contains_category'] = 'contains_category';
return $columns;
}
add_filter('manage_edit-shop_order_sortable_columns', 'custom_order_column_sortable');
// Handle sorting logic for the custom column
function custom_order_column_orderby($vars) {
if (isset($vars['orderby']) && 'contains_category' === $vars['orderby']) {
$vars = array_merge($vars, array(
'meta_key' => '_contains_category', // Replace with your actual meta key
'orderby' => 'meta_value'
));
}
return $vars;
}
add_filter('request', 'custom_order_column_orderby');
Woo order add sortable exist some products
by
Tags: