Coupon column – with list of orders coupon was used:
function woo_customer_coupon_column_for_orders( $columns ) {
$new_columns = array();
foreach ( $columns as $column_key => $column_label ) {
if ( 'expiry_date' === $column_key ) {
$new_columns['order_coupons'] = __('Orders', 'woocommerce');
}
$new_columns[$column_key] = $column_label;
}
return $new_columns;
}
add_filter( 'manage_edit-shop_coupon_columns', 'woo_customer_coupon_column_for_orders' );
function woo_display_customer_coupon_in_column_for_orders( $column ) {
global $the_order, $post;
if( $column == 'order_coupons' ) {
$orders_with_coupon = wh_getOrderbyCouponCode($post->post_title);
foreach ($orders_with_coupon as $order) {
echo '- <a href="'.get_admin_url().'/post.php?post='.$order.'&action=edit"><small><em>#' . $order . '</em></small></a>';
echo '<br/>';
}
}
}
add_action( 'manage_shop_coupon_posts_custom_column' , 'woo_display_customer_coupon_in_column_for_orders' );
function wh_getOrderbyCouponCode($coupon_code) {
global $wpdb;
$return_array = [];
$query = "SELECT
p.ID AS order_id
FROM
{$wpdb->prefix}posts AS p
INNER JOIN {$wpdb->prefix}woocommerce_order_items AS woi ON p.ID = woi.order_id
WHERE
p.post_type = 'shop_order' AND
p.post_status IN ('" . implode("','", array_keys(wc_get_order_statuses())) . "') AND
woi.order_item_type = 'coupon' AND
woi.order_item_name = '" . $coupon_code . "';";
$orders = $wpdb->get_results($query);
if (!empty($orders)) {
$dp = ( isset($filter['dp']) ? intval($filter['dp']) : 2 );
//looping throught all the order_id
foreach ($orders as $key => $order) {
$order_id = $order->order_id;
$return_array[$key] = $order_id;
}
}
return $return_array;
}