Skip to content

Instantly share code, notes, and snippets.

@joseconti
Last active December 14, 2022 22:51
Show Gist options
  • Save joseconti/111b7536ede18bcf45eb655ddafe11ba to your computer and use it in GitHub Desktop.
Save joseconti/111b7536ede18bcf45eb655ddafe11ba to your computer and use it in GitHub Desktop.
<?php
// filtro para añadir las acciones al listado de entradas (post)
add_filter( 'bulk_actions-edit-post', 'prefijo_anadimos_acciones_bulk' );
function prefijo_anadimos_acciones_bulk( $bulk_actions ) {
$bulk_actions['accion_primera_anadida'] = __( 'Esta es la acción primera', 'dominio_traduccion');
$bulk_actions['accion_segunda_anadida'] = __( 'Esta es la acción segunda', 'dominio_traduccion');
return $bulk_actions;
}
// Filto para añadir lo que se debe hacer con las acciones anteriores cuando se seleccionan en el listado de entradas (post)
add_filter( 'handle_bulk_actions-edit-post', 'prefijo_anadimos_actions_handler', 10, 3 );
function prefijo_anadimos_actions_handler( $redirect_to, $doaction, $post_ids ) {
//Solo continúa si son las acciones que hemos creado nosotros
if ( $doaction !== 'accion_primera_anadida' && $doaction !== 'accion_segunda_anadida' ) {
return $redirect_to;
}
// Si es la acción primera, realizará estas acciones
if ( $doaction === 'accion_primera_anadida' ) {
foreach( $post_ids as $post_id ) {
// Aquí lo que quieras que se realice con accion_primera_anadida
}
$redirect_to = add_query_arg( 'accion_primera_anadida', count( $post_ids ), $redirect_to );
return $redirect_to;
} elseif ( $doaction == 'accion_segunda_anadida' ) {
foreach( $post_ids as $post_id ) {
// Aquí lo que quieras que se realice con accion_segunda_anadida
}
$redirect_to = add_query_arg( 'accion_segunda_anadida', count( $post_ids ), $redirect_to );
return $redirect_to;
}
}
// Añadimos el notice para que se sepa la acción y cuantos POSTS se han actualizado.
add_action( 'admin_notices', 'prefijo_anadimos_actions_admin_notice' );
function prefijo_anadimos_actions_admin_notice() {
if ( ! empty( $_REQUEST['bulk_emailed_posts'] ) ) {
$acciones_count = intval( $_REQUEST['accion_primera_anadida'] );
printf( '<div id="message" class="updated fade">' .
_n( '%s accione primera realizada.',
'%s acciones primeras realizadas.',
$acciones_count,
'dominio_traduccion'
) . '</div>', $acciones_count );
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment