Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
[WooCommerce 3.0+] Re-instate the "Purchased items" column on orders page
add_filter('manage_edit-shop_order_columns', 'wc_custom_purchased_column');
function wc_custom_purchased_column($columns)
{
$new_array = array();
foreach ($columns as $key => $title) {
if ($key == 'billing_address') {
$new_array['order_items'] = __('Purchased', 'woocommerce');
}
$new_array[$key] = $title;
}
return $new_array;
}
add_action('manage_shop_order_posts_custom_column', 'wc_shop_custom_column', 10, 2);
function wc_shop_custom_column($column)
{
global $post, $woocommerce, $the_order;
switch ($column) {
case 'order_items':
$terms = $the_order->get_items();
echo '<a href="#" class="show_order_items">' . apply_filters( 'woocommerce_admin_order_item_count', sprintf( _n( '%d item', '%d items', $the_order->get_item_count(), 'woocommerce' ), $the_order->get_item_count() ), $the_order ) . '</a>';
if ( sizeof( $the_order->get_items() ) > 0 ) {
echo '<table class="order_items" cellspacing="0">';
foreach ( $the_order->get_items() as $item ) {
$product = apply_filters( 'woocommerce_order_item_product', $item->get_product(), $item );
$item_meta = (WC()->version < '3.1.0') ? new WC_Order_Item_Meta($item) : new WC_Order_Item_Product;
$item_meta_html = (WC()->version < '3.1.0') ? $item_meta->display(true, true) : $item_meta->get_product();
//$item_meta = new WC_Order_Item_Meta( $item, $product );
//$item_meta_html = $item_meta->display( true, true );
?>
<tr class="<?php echo apply_filters( 'woocommerce_admin_order_item_class', '', $item, $the_order ); ?>">
<td class="qty"><?php echo esc_html( $item->get_quantity() ); ?></td>
<td class="name">
<?php if ( $product ) : ?>
<?php echo ( wc_product_sku_enabled() && $product->get_sku() ) ? $product->get_sku() . ' - ' : ''; ?><a href="<?php echo get_edit_post_link( $product->get_id() ); ?>"><?php echo apply_filters( 'woocommerce_order_item_name', $item->get_name(), $item, false ); ?></a>
<?php else : ?>
<?php echo apply_filters( 'woocommerce_order_item_name', $item->get_name(), $item, false ); ?>
<?php endif; ?>
<?php if ( ! empty( $item_meta_html ) ) : ?>
<?php echo wc_help_tip( $item_meta_html ); ?>
<?php endif; ?>
</td>
</tr>
<?php
}
echo '</table>';
} else echo '&ndash;';
break;
}
}
@rynaldos

This comment has been minimized.

Copy link
Owner Author

rynaldos commented Apr 20, 2017

This is downloadable as a plugin (free!) : https://wordpress.org/plugins/restore-purchased-items-column/

@prikhi

This comment has been minimized.

Copy link

prikhi commented May 26, 2017

This is great, thanks!

I forked it & cleaned it up a bit:
https://gist.github.com/prikhi/5f497142ff68be3c13073bc641e85522

@davewadestein

This comment has been minimized.

Copy link

davewadestein commented Jun 25, 2017

Thanks so much for making this a plugin! I was missing that functionality and you've made my day!

@silenx

This comment has been minimized.

Copy link

silenx commented Jul 9, 2017

Is also good have order date column, can you add to your code?

@rynaldos

This comment has been minimized.

Copy link
Owner Author

rynaldos commented Jul 17, 2017

@silenx — the order date column is still present in core, following the 3.0 update .. am I missing something?

@rynaldos

This comment has been minimized.

Copy link
Owner Author

rynaldos commented Jul 20, 2017

Updated for WooCommerce 3.1

@rynaldos

This comment has been minimized.

Copy link
Owner Author

rynaldos commented Jan 8, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.