web-dev-qa-db-fra.com

Ajouter un bouton d'envoi ou de mise à jour à une métabox personnalisée?

J'ai beaucoup de boîtes à méta personnalisées, et l'utilisateur doit défiler vers le haut à chaque fois qu'il veut enregistrer les informations de méta.

Y at-il un moyen de mettre des boutons de soumission à chaque méta-boîte qui fait la même chose que le bouton de mise à jour?

3
hamahama

Je ne sais pas si je suis d'accord avec la réponse EarnestoDev qui est plus une opinion qu'une réponse basée sur des faits et qui n'est pas vraie dans tous les cas, car vous pouvez utiliser jQuery pour déclencher l'événement submit lorsqu'un utilisateur différent est cliqué code js une fois

<script>
jQuery('.metabox_submit').click(function(e) {
    e.preventDefault();
    jQuery('#publish').click();
});
</script>

et dans chaque metabox ajouter:

<input type="submit" class="metabox_submit" value="Submit" />
11
Bainternet

NE LE FAITES PAS! Il y a des raisons pour lesquelles les formulaires ont été centralisés. Parce que certains traitements sont effectués derrière l'écran et qu'un bouton est sécurisé. Avoir un bouton supplémentaire dans tous vos Metaboxes prendra également plus de place.

Plus il est facile pour l'utilisateur d'appuyer sur le bouton, plus il est prudent de parier qu'il oubliera quelque chose. Plus il est difficile de soumettre un message, plus vous pouvez être sûr qu'il examinera les choses correctement.

Un bouton = IMPORTANT . Plusieurs boutons = rétrogradation d'importance .

4
EarnestoDev

C’est une approche totalement fausse du problème (et c’est vraiment une question d’UX, pas une question de codage).

Lorsque vous avez plusieurs boutons de soumission, la convention UX stipule que chaque bouton soumet les données groupées avec lui et pas les autres . Ce n’est pas ainsi que WordPress Post Editor fonctionne car il n’a qu’une forme et les métaboxes servent uniquement à des effets visuels et non à une véritable séparation des formes. Par conséquent, vous ne voulez qu'un seul bouton d'envoi afin de ne pas dérouter vos utilisateurs.

Le problème avec le bouton est qu’il défile avec la page et sort du champ de vision de l’utilisateur. Il doit faire défiler le texte pour le voir. Cependant, la solution ne consiste pas à couvrir la page de dizaines de boutons button (ajoutez un peu de JS pour changer la position du CSS en fixe quand il devient invisible) ou ajoutez un bouton d'envoi dans la barre d'administration et je ne le trouve pas pour le moment, mais il y avait un plugin qui le fait.

0
Mark Kaplun