mandatory fields are no longer validated in wordpress
-
Hello,
My required fields no longer work in wordpress since creating a shortcode. It works through the shortcode in elementor but no longer in wordpress. You will find below the code of my metaboxes. I don’t use Gutenberg Thanks for your help.-
This topic was modified 5 years, 3 months ago by
jeanyvesruffin.
-
This topic was modified 5 years, 3 months ago by
-
<?php add_action( 'cmb2_meta_boxes', 'eventatelier_meta_boxes' ); if ( ! function_exists( 'eventatelier_meta_boxes' ) ) { /** * Get Custom Post Type */ function eneget_posttype_optionss( $argument ) { $get_post_args = array( 'post_type' => $argument, 'posts_per_page' => - 1 ); $options = array(); $options[] = __('--- Selectionner le nom de l\'orateur ---', 'eventatelier'); foreach ( get_posts( $get_post_args ) as $post ) { $title = get_the_title( $post->ID ); $options[ $post->ID ] = $title; } return $options; } function eventatelier_meta_boxes() { $prefix = '_eventatelier_'; $eventatelier = new_cmb2_box( array( 'id' => $prefix . 'product_page', 'title' => __( 'Paramétrage de l\'atelier', 'eventatelier' ), 'object_types' => array( 'eventatelier' ), 'context' => 'normal', 'priority' => 'high', 'show_names' => true, 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); // Slogan atelier $eventatelier->add_field( array( 'name' => __( 'Slogan de l\'atelier', 'eventatelier' ), 'id' => $prefix . 'slogan', 'type' => 'text', 'desc' => __( 'Ajouter un slogan à l\'atelier. Ex: Tes réseaux sociaux, ton identité. Atelier sous forme d\'un Escape Game', 'eventatelier' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); // Description atelier $eventatelier->add_field( array( 'name' => __( 'Description/ Sujet de l\'atelier', 'eventatelier' ), 'id' => $prefix . 'description', 'type' => 'text', 'desc' => __( 'Ajouter une description à l\'atelier. Ex: Quelle empreinte numérique les utilisateurs laissent-ils sur les réseaux sociaux et internet ?', 'eventatelier' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); //Jour de la semaine atelier $eventatelier->add_field( array( 'name' => __( 'Jours de la semaine de l\'atelier', 'eventatelier' ), 'id' => $prefix . 'day', 'type' => 'text', 'desc' => __( 'Indiquer le jours de la semaine de l\'atelier. Ex: Lundi, Mardi et Vendredi. Tous les jeudi', 'eventatelier' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); // Dure de l'atelier atelier $eventatelier->add_field( array( 'name' => __( 'Durée de l\'atelier', 'eventatelier' ), 'id' => $prefix . 'time', 'type' => 'text', 'desc' => __( 'Quel est la durée de l\'atelier ? Ex: 45 minutes, 1 heure, 1 heure 45 minutes', 'eventatelier' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); //location style $eventatelier->add_field( array( 'name' => __( 'Lieu de l\'atelier', 'eventatelier' ), 'id' => $prefix . 'location', 'type' => 'text', 'desc' => __( 'Où se déroule l\'atelier ? Ex: Chambre de Commerce et d\'Industrie du Mans et de la Sarthe 1 Boulevard René Levasseur, 72002 Le Mans', 'eventatelier' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); //spacker name style $eventatelier->add_field( array( 'name' => __( 'Nom de l\'orateur', 'eventatelier' ), 'id' => $prefix . 'spacker_name', 'type' => 'select', 'desc' => __( 'Indiquer le nom de l\'orateur ? Ex : M.Dupont Alain', 'eventatelier' ), 'options' => eneget_posttype_optionss( 'speaker' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); //age conseillé style $eventatelier->add_field( array( 'name' => __( 'Age conseillé', 'apsideevent' ), 'id' => $prefix . 'age_participation', 'type' => 'text', 'desc' => __( 'Indiquer à partir de quel age l\'atelier est accessible. Ex: A partir de 15 ans, entre 11 et 15 ans.', 'eventatelier' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); //upload image et video $eventatelier->add_field( array( 'name' => __( 'Image et video', 'eventatelier' ), 'id' => $prefix . 'upload_ressources', 'type' => 'file_list', 'desc' => __( 'Selectionner les images et videos (Seulement 3 images seront affichées)', 'eventatelier' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); $group_field_id = $eventatelier->add_field( array( 'id' => $prefix . 'planning', 'type' => 'group', 'description' => __( 'Création du planning', 'cmb2' ), 'option' => array( 'group_title' => __( 'Info box ', 1, 'cmb2' ), 'add_button' => __( 'Add Info Box', 'cmb2' ), 'remove_button' => __( 'Remove Info Box', 'cmb2' ), 'sortable' => true ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); $eventatelier->add_group_field( $group_field_id, array( 'name' => 'Date de l\'atelier', 'id' => $prefix . 'planning_date', 'type' => 'text_date', 'date_format' => 'l j F Y', 'desc' => __( 'Selectionner à l\'aide du calendrier la date de l\'atelier.', 'eventatelier' ), 'attributes' => array( 'required' => 'required', ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); $eventatelier->add_group_field( $group_field_id, array( 'name' => 'Heure de l\'atelier', 'id' => $prefix . 'planning_hour', 'type' => 'text', 'desc' => __( 'Indiquer l\'heure à laquelle l\'atelier commence à l\'aide de l\'icône horloge.', 'eventatelier' ), 'attributes' => array( 'type' => 'time', 'required' => 'required', ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); $eventatelier->add_group_field( $group_field_id, array( 'name' => 'Emplacement de l\'atelier', 'id' => $prefix . 'planning_location', 'desc' => __( 'Indiquer la salle où l\'atelier se déroule. Ex: Salle 103', 'eventatelier' ), 'type' => 'text', 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); $eventatelier->add_group_field( $group_field_id, array( 'name' => 'Nombre de place disponible pour l\'atelier', 'id' => $prefix . 'planning_available', 'type' => 'text', 'desc' => __( 'Indiquer le nombre de place disponible pour l\'atelier. Ex: 65', 'eventatelier' ), 'attributes' => array( 'type' => 'number', 'pattern' => '\d*', 'required' => 'required', ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); } } add_action( 'cmb2_meta_boxes', 'eventevenement_meta_boxes' ); if ( ! function_exists( 'eventevenement_meta_boxes' ) ) { function eventevenement_meta_boxes() { $prefix = '_eventevenement_'; $eventevenement = new_cmb2_box( array( 'id' => $prefix . 'product_page', 'title' => __( 'Paramétrage de l\'événement', 'eventevenement' ), 'object_types' => array( 'eventevenement' ), 'context' => 'normal', 'priority' => 'high', 'show_names' => true, 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); // Slogan evenement $eventevenement->add_field( array( 'name' => __( 'Slogan de l\'événement', 'eventevenement' ), 'id' => $prefix . 'slogan', 'type' => 'text', 'desc' => __( 'Ajouter un slogan à l\'atelier. Ex: Tes réseaux sociaux, ton identité. Atelier sous forme d\'un Escape Game', 'eventevenement' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); // Description atelier $eventevenement->add_field( array( 'name' => __( 'Description de l\'événement', 'eventevenement' ), 'id' => $prefix . 'description', 'type' => 'text', 'desc' => __( 'Ajouter une description à l\'événement. Ex: Quelle empreinte numérique les utilisateurs laissent-ils sur les réseaux sociaux et internet ?', 'eventevenement' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); //Jour de la semaine evenement $eventevenement->add_field( array( 'name' => __( 'Jours de la semaine de l\'événement', 'eventevenement' ), 'id' => $prefix . 'day', 'type' => 'text', 'desc' => __( 'Indiquer le jours de la semaine de l\'événement. Ex: Lundi, Mardi et Vendredi. Tous les jeudi', 'eventevenement' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); // Dure de l'evenement evenement $eventevenement->add_field( array( 'name' => __( 'Durée de l\'événement', 'eventevenement' ), 'id' => $prefix . 'time', 'type' => 'text', 'desc' => __( 'Quel est la durée de l\'événement ? Ex: 45 minutes, 1 heure, 1 heure 45 minutes', 'eventevenement' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); //location style $eventevenement->add_field( array( 'name' => __( 'Lieu de l\'événement', 'eventevenement' ), 'id' => $prefix . 'location', 'type' => 'text', 'desc' => __( 'Où se déroule l\'événement ? Ex: Chambre de Commerce et d\'Industrie du Mans et de la Sarthe 1 Boulevard René Levasseur, 72002 Le Mans', 'eventevenement' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); //spacker name style $eventevenement->add_field( array( 'name' => __( 'Nom de l\'orateur', 'eventevenement' ), 'id' => $prefix . 'spacker_name', 'type' => 'select', 'desc' => __( 'Indiquer le nom de l\'orateur ? Ex : M.Dupont Alain', 'eventevenement' ), 'options' => eneget_posttype_optionss( 'speaker' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); //age conseillé style $eventevenement->add_field( array( 'name' => __( 'Age conseillé', 'eventevenement' ), 'id' => $prefix . 'age_participation', 'type' => 'text', 'desc' => __( 'Indiquer à partir de quel age l\'événement est accessible. Ex: A partir de 15 ans, entre 11 et 15 ans.', 'eventevenement' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); //upload image et video $eventevenement->add_field( array( 'name' => __( 'Image et video', 'eventevenement' ), 'id' => $prefix . 'upload_ressources', 'type' => 'file_list', 'desc' => __( 'Selectionner les images et videos (Seulement 3 images seront affichées)', 'eventevenement' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); $group_field_id = $eventevenement->add_field( array( 'id' => $prefix . 'planning', 'type' => 'group', 'description' => __( 'Création du planning', 'cmb2' ), 'option' => array( 'group_title' => __( 'Info box ', 1, 'cmb2' ), 'add_button' => __( 'Add Info Box', 'cmb2' ), 'remove_button' => __( 'Remove Info Box', 'cmb2' ), 'sortable' => true ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); $eventevenement->add_group_field( $group_field_id, array( 'name' => 'Date de l\'événement', 'id' => $prefix . 'planning_date', 'type' => 'text_date', 'date_format' => 'l j F Y', 'desc' => __( 'Selectionner à l\'aide du calendrier la date de l\'événement.', 'eventevenement' ), 'attributes' => array( 'required' => 'required', ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); $eventevenement->add_group_field( $group_field_id, array( 'name' => 'Heure de l\'événement', 'id' => $prefix . 'planning_hour', 'type' => 'text', 'desc' => __( 'Indiquer l\'heure à laquelle l\'événement commence à l\'aide de l\'icône horloge. Ex: Séance de 10h30', 'eventevenement' ), 'attributes' => array( 'type' => 'time', 'required' => 'required', ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); $eventevenement->add_group_field( $group_field_id, array( 'name' => 'Emplacement de l\'événement', 'id' => $prefix . 'planning_location', 'desc' => __( 'Indiquer la salle où l\'événement se déroule. Ex: Salle 103', 'eventevenement' ), 'type' => 'text', 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); $eventevenement->add_group_field( $group_field_id, array( 'name' => 'Nombre de place disponible pour l\'événement', 'id' => $prefix . 'planning_available', 'type' => 'text', 'desc' => __( 'Indiquer le nombre de place disponible pour l\'événement. Ex: 65', 'eventevenement' ), 'attributes' => array( 'type' => 'number', 'required' => 'required', ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); } } add_action( 'cmb2_meta_boxes', 'eventspeaker_meta_boxes' ); if ( ! function_exists( 'eventspeaker_meta_boxes' ) ) { function eventspeaker_meta_boxes() { $prefix = '_eventspeaker_'; //apsideevent speaker $eventSpeaker = new_cmb2_box( array( 'id' => $prefix . 'speaker', 'title' => __( 'Informations sur l\'orateur ', 'eventspeaker' ), 'object_types' => array( 'speaker' ), 'priority' => 'low', 'show_names' => true, 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); //speaker position $eventSpeaker->add_field( array( 'name' => __( 'Désignation de l\'orateur', 'eventspeaker' ), 'id' => $prefix . 'position', 'type' => 'text', 'desc' => __( 'Ex: M. Do John', 'eventspeaker' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); //speaker info $eventSpeaker->add_field( array( 'name' => __( 'Information sur l\'orateur.', 'eventspeaker' ), 'id' => $prefix . 'speaker_info', 'type' => 'textarea_small', 'desc' => __( ' Ex Diplômé de l\'Institut de Technologie du Massachusetts', 'eventspeaker' ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); } } add_action( 'cmb2_init', 'user_members_meta_boxes' ); if ( ! function_exists( 'user_members_meta_boxes' ) ) { function user_members_meta_boxes() { $prefix = 'member_'; $member = new_cmb2_box( array( 'id' => $prefix . 'edit', 'title' => __( 'Informations sur les membres ', 'cmb2' ), 'object_types' => array( 'user' ), 'show_names' => true, 'hookup' => false, 'save_fields' => false, 'new_user_section' => 'add-existing-user',//add-new-user ???add-existing-user 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); $member_group_field = $member->add_field( array( 'id' => $prefix . 'create_user', 'type' => 'group', 'description' => __( 'Création d\'un nouveau membre', 'cmb2' ), 'option' => array( 'group_title' => __( 'Info box ', 1, 'cmb2' ), 'add_button' => __( 'Add Info Box', 'cmb2' ), 'remove_button' => __( 'Remove Info Box', 'cmb2' ), 'sortable' => true ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); $member->add_group_field( $member_group_field, array( 'id' => 'first_name', 'name' => __( 'Prenom du membre', 'cmb2' ), 'type' => 'text', 'desc' => __( 'Indiquer le prénom du membre à ajouter à votre profil', 'cmb2' ), 'attributes' => array( 'required' => 'required', ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); $member->add_group_field( $member_group_field, array( 'id' => 'last_name', 'name' => __( 'Nom du membre', 'cmb2' ), 'type' => 'text', 'desc' => __( 'Indiquer le nom du membre à ajouter à votre profil', 'cmb2' ), 'attributes' => array( 'required' => 'required', ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); $member->add_group_field( $member_group_field, array( 'id' => 'age', 'name' => __( 'Age du membre', 'cmb2' ), 'type' => 'text', 'desc' => __( 'Indiquer l\'age du membre à ajouter à votre profil', 'cmb2' ), 'attributes' => array( 'type' => 'number', 'required' => 'required', ), 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); $member->add_group_field( $member_group_field, array( 'id' => 'event', 'type' => 'text', 'show_in_rest' => WP_REST_Server::ALLMETHODS, ) ); } } function frontend_add_usermember_shortcode() { $metabox_id = 'member_edit'; $object_id = 'fake-oject-id'; $cmb = cmb2_get_metabox( $metabox_id, $object_id ); $output = ''; new_usermember_submission( $cmb ); $output .= cmb2_get_metabox_form( $cmb, $object_id, array( 'save_button' => __( 'Ajouter un nouveau membre', 'cmb2' ) ) ); return $output; } add_shortcode( 'member_manager', 'frontend_add_usermember_shortcode' ); function new_usermember_submission( $cmb ) { $user_id = get_current_user_id(); $get_meta_user = get_user_meta( $user_id, 'member_create_user' ); if ( ! isset( $_POST['submit-cmb'], $_POST['object_id'], $_POST[ $cmb->nonce() ] ) || ! wp_verify_nonce( $_POST[ $cmb->nonce() ], $cmb->nonce() ) ) { return new WP_Error( 'security_fail', __( 'Security check failed.' ) ); } if ( empty( $get_meta_user ) ) { // ajout d'un nouveau membre $get_values_meta_user = $_POST['member_create_user']; add_user_meta( $user_id, 'member_create_user', $get_values_meta_user ); echo '<script>window.location="http://localhost/"</script>'; } else { //update d'un nouveau membre $oldData = ( get_user_meta( $user_id, 'member_create_user', true ) ); $newData = ( $_POST['member_create_user'] ); $result = array_merge( $oldData, $newData ); update_user_meta( $user_id, 'member_create_user', $result ); echo '<script>window.location="http://localhost/"</script>'; } }This is just an issue for the user metaboxes correct? Not some of the others for post types?
As is, I’m getting this browser-based popup showing up when trying to save the form on the frontend, with nothing filled out https://cloudup.com/c1DPDW2c-Sd Once I filled in something, I got redirected to http://localhost/ as per the JS inside
new_usermember_submission()so it made iat past the nonces.So some more information about which aspects of validating is failing, would be helpful.
Hello Michael,
Indeed the validation of the fields works for the fields of the metabox shortcode frontend_add_usermember_shortcode in elementor.
But field validation no longer works in wordpress for eventatelier and eventevenement groups using the default wordpress save button.
Here are the catches.
Thank you in advance for your help and work.
I like CMB2
https://ibb.co/9Zn27x7
https://ibb.co/6DW6j2N-
This reply was modified 5 years, 3 months ago by
jeanyvesruffin.
So primarily just on the WP admin side of things, not the frontend from the sounds of it.
yes on the WP admin side
Since I don’t think I had it answered earlier, is this for the
usermetaboxes, or is it for the other post types ? Asking this part because your screenshots from a couple days ago show the post editor, and I wanna make sure I’m spot checking the correct places.For other types of messages. This is for the groups of fields $ group_field_id = $ eventevenement and $ group_field_id = $ eventatelier. Thank you
Not presently sure what to suggest because I just tried with both of those setups and the group fields and each time it was preventing me from saving until I filled in all 3 required. Only change I made was I put it on the “post” post type because I don’t have those two of yours registered.
Possibly other plugins or something else javascript based interfering for you? All the native HTML elements to denote a field as required are showing up like expected.
Great Michael
Thank you for this verification.
Indeed, I will look for any interference with js or plugins.
Have a good day.
Best RegardsWelcome.
-
This reply was modified 5 years, 3 months ago by
The topic ‘mandatory fields are no longer validated in wordpress’ is closed to new replies.