J'utilise ce crochet pour autoriser uniquement l'accès au tableau de bord aux rôles d'administrateur
add_action( 'admin_init', function() {
if ( defined('DOING_AJAX') && DOING_AJAX ) {
return;
}
if ( !current_user_can('manage_options') ) {
wp_redirect( home_url('/meu-perfil') );
exit();
}
});
Maintenant, je dois exécuter une fonction lorsqu'un formulaire est soumis au début, comme suit:
function editUser() {
error_log('message');
}
add_action( 'admin_post_nopriv_add_foobar', 'editUser' );
add_action( 'admin_post_add_foobar', 'editUser' );
Mais le premier crochet bloque le second.
Tout ce que vous avez à faire est de modifier votre méthode de restriction des utilisateurs.
add_action( 'admin_init', function() {
if ( (defined('DOING_AJAX') && DOING_AJAX) || ( strpos($_SERVER['SCRIPT_NAME'], 'admin-post.php') ) ) {
return;
}
if ( !current_user_can('manage_options') ) {
wp_redirect( home_url('/meu-perfil') );
exit();
}
}