Agregar columna personalizada a la lista de publicaciones personalizadas

2

Quiero tener una columna (por ejemplo, Enviar correo electrónico) en mi lista de publicaciones personalizadas (libros). En cada fila debe haber un botón (Enviar) y cuando hago clic en él quiero enviar un correo electrónico.

He visto es un gancho manage_posts_custom_column para agregar una columna personalizada, pero este gancho solo agrega la meta posterior como columnas como imagen destacada etc.

Cómo hacer esto, por favor, ayúdame.

Captura de pantalla

    
pregunta Bhuvnesh Gupta 09.03.2016 - 10:58

1 respuesta

6

Agregar una nueva columna a la tabla de publicaciones books

Aquí podemos usar los filtros

manage_{$post->post_type}_posts_custom_column
manage_{$post->post_type}_posts_columns

o para el tipo de publicación books :

manage_books_posts_custom_column
manage_books_posts_columns

Este es un ejemplo de cómo podemos mostrar un botón para cada fila en la columna send_email :

/**
 * Books Post Table: Display a utton in each row in the 'send_email' column
 */
add_action( 'manage_books_posts_custom_column', function ( $column_name, $post_id ) 
{
    if ( $column_name == 'send_email')
        printf( '<input type="button" value="%s" />', esc_attr( __( 'Send Email' ) ) );

}, 10, 2 );

Para agregar la columna send_email podemos usar:

/**
 * Books Post Table: Add the 'send_email' column
 */
add_filter('manage_books_posts_columns', function ( $columns ) 
{
    if( is_array( $columns ) && ! isset( $columns['send_email'] ) )
        $columns['send_email'] = __( 'Send Email' );     
    return $columns;
} );

También podríamos limitar el ancho de la columna con:

/**
 * Limit the 'send_email' column width
 */
add_action( 'admin_print_styles-edit.php', function()
{        
    echo '<style> .column-send_email { width: 100px; }</style>';
} );

Aquí hay un ejemplo de salida:

Luego tendrás que implementar cómo funcionará el botón.

ps: eliminé la segunda parte de mi respuesta, ya que esa parte de tu pregunta se serviría mejor como una nueva pregunta por separado.

    
respondido por el birgire 09.03.2016 - 11:45

Lea otras preguntas en las etiquetas