Je souhaite avoir une colonne (par exemple, Envoyer un courrier électronique) dans ma liste de publications personnalisées (livres). Dans chaque ligne, il devrait y avoir un bouton (Envoyer) et quand je clique dessus, je veux envoyer un email.
J'ai vu est un crochet manage_posts_custom_column pour ajouter une colonne personnalisée, mais ce crochet ajoute uniquement des méta de publication en tant que colonnes telles que l'image sélectionnée, etc.
Comment faire cela, aidez-moi s'il vous plaît.
Capture d'écran
books
PostIci on peut utiliser les filtres
manage_{$post->post_type}_posts_custom_column
manage_{$post->post_type}_posts_columns
ou pour le type de poste books
:
manage_books_posts_custom_column
manage_books_posts_columns
Voici un exemple d'affichage d'un bouton pour chaque ligne de la colonne 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 );
Pour ajouter la colonne send_email
, nous pouvons utiliser:
/**
* 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;
} );
Nous pourrions aussi limiter la largeur de la colonne avec:
/**
* Limit the 'send_email' column width
*/
add_action( 'admin_print_styles-edit.php', function()
{
echo '<style> .column-send_email { width: 100px; }</style>';
} );
Voici un exemple de sortie:
Vous devrez ensuite implémenter le fonctionnement du bouton.
ps: J'ai enlevé la deuxième partie de ma réponse, car cette partie de votre question serait mieux servie comme une nouvelle question séparée.