将带有作者姓名的新列添加到 WooCommerce 管理员优惠券列表

Add a new column with author name to WooCommerce admin coupon list

昨天我们遇到了这样的情况,有人问我“谁创建了这张优惠券?”。不幸的是,WooCommerce 默认情况下不会在列出所有优惠券的优惠券概览中显示优惠券的创建者。

我想知道的是,如何在 WooCommerce > 市场营销 > 优惠券概览中添加一个包含作者姓名的新列。

这是我目前拥有的:

function display_coupon_creator() {

    foreach( $coupons as $coupon ){

        // Get coupon creator
        $coupon_creator_id = get_post_field('post_author', $post_id);
        $creator_name = get_the_author_meta( 'display_name', $coupon_creator_id );

        echo $creator_name . '<br>';    
    }
}

很遗憾没有得到想要的结果,有没有人可以把我带上正轨?

这将在优惠券列表中添加一个新列,其中包含作者姓名, 通过添加到代码中的注释标签进行解释。

// Add a Header
function filter_manage_edit_shop_coupon_columns( $columns ) {   
    // Add new column
    $columns['coupon_author'] = __( 'Author', 'woocommerce' );

    return $columns;
}
add_filter( 'manage_edit-shop_coupon_columns', 'filter_manage_edit_shop_coupon_columns', 10, 1 );

// Populate the Column
function action_manage_shop_coupon_posts_custom_column( $column, $post_id ) {
    // Compare
    if ( $column == 'coupon_author' ) {
        // Author ID
        $author_id = get_post_field ( 'post_author', $post_id );
        
        // Display name
        $display_name = get_the_author_meta( 'display_name' , $author_id );
        
        // NOT empty
        if ( ! empty ( $display_name ) ) {
            echo $display_name;         
        }
    }
}
add_action( 'manage_shop_coupon_posts_custom_column' , 'action_manage_shop_coupon_posts_custom_column', 10, 2 );