Meta Boxes not save values
-
Hello,
I am a multimedia student and in my final degree work I am developing a website where I have implemented a custom post type.
The case is that I added metaboxes , but the information is not stored in the database. Furthemore I can’t see the data that has been entered once the post has been updated.
Next I show you the code that I have implemented.
function learning_tools_meta_boxes() { //add_meta_box($id, $title, $callback, $screen, $context, $priority, $callback_args); add_meta_box('learning_tools', __('Learning Tools'), 'learning_tools_output_meta_box', 'Learning Tools', 'normal', 'high'); } add_action('add_meta_boxes', 'learning_tools_meta_boxes'); function learning_tools_output_meta_box($post) { $learning_tools_date = get_post_meta($post->ID, '_learning_tools_date', true); $learning_tools_hour = get_post_meta($post->ID, '_learning_tools_hour', true); $learning_tools_duration = get_post_meta($post->ID, '_learning_tools_duration', true); $learning_tools_language = get_post_meta($post->ID, '_learning_tools_language', true); $learning_tools_modality = get_post_meta($post->ID, '_learning_tools_modality', true); // Usaremos este nonce field más adelante cuando guardemos en learning_tools_save_meta_box() wp_nonce_field( 'save_learning_tools', 'learning_tools_nonce' ); // Date echo('<label for="learning_tools_date">' . __('Date', 'text_domain') . '</label> '); echo('<input type="date" name="learning_tools_date" id="learning_tools_date" value=""><br><br>'); // Hour echo('<label for="learning_tools_hour">' . __('Hour', 'text_domain') . '</label> '); echo('<input type="time" name="learning_tools_hour" id="learning_tools_hour" value=""><br><br>'); // Duration echo('<label for="learning_tools_duration">' . __('Duration', 'text_domain') . '</label> '); echo('<input type="number" name="learning_tools_duration" id="learning_tools_duration" value=""> h <br><br>'); // Language echo('<label for="learning_tools_language">' . __('Language: ', 'text_domain') . '</label> '); echo('<label for="learning_tools_english">' . __('English ', 'text_domain') . '</label> '); echo('<input type="checkbox" name="learning_tools_english" id="learning_tools_english" value="">'); echo('<label for="learning_tools_german">' . __('German ', 'text_domain') . '</label> '); echo('<input type="checkbox" name="learning_tools_german" id="learning_tools_german" value="">'); echo('<label for="learning_tools_italian">' . __('Italian ', 'text_domain') . '</label> '); echo('<input type="checkbox" name="learning_tools_italian" id="learning_tools_italian" value=""><br><br>'); // Modality echo('<label for="learning_tools_modality">' . __('Modality ', 'text_domain') . '</label> '); echo('<select name="learning_tools_modality" id="learning_tools_modality"><br><br>'); echo('<option value="Online">' .__( 'Online', 'learning_tools_textdomain' ).'</option>'); echo('<option value="On-site">' .__( 'On-site', 'learning_tools_textdomain' ).'</option>'); echo('</select>'); } function learning_tools_save_meta_boxes( $post_id ) { if(!isset($_POST['learning_tools_nonce']) || ! wp_verify_nonce($_POST['learning_tools_nonce'], 'save_learning_tools')) { return $post_id; } // Comprovem que Learning Tools és un CPT if ( 'learning_tools_date' != $_POST['post_type'] ) { return $post_id; } // Comprovem l'usuari que està editant el post i els permisos per si ho pot fer if ( ! current_user_can( 'edit_post', $post_id ) ) { return $post_id; } // Guardem totes les meta-dades $learning_tools_date = $_POST['learning_tools_date']; update_post_meta ($post_id, '_learning_tools_date', $learning_tools_date ); /*$learning_tools_hour = sanitize_text_field( $_POST['learning_tools_hour'] ); update_post_meta( $post_id, '_learning_tools_hour', $learning_tools_hour ); $learning_tools_duration = sanitize_text_field( $_POST['learning_tools_duration'] ); update_post_meta( $post_id, '_learning_tools_duration', $learning_tools_duration ); $learning_tools_language = sanitize_text_field( $_POST['learning_tools_language'] ); update_post_meta( $post_id, '_learning_tools_date', $learning_tools_language ); $learning_tools_modality = sanitize_text_field( $_POST['learning_tools_modality'] ); update_post_meta( $post_id, '_learning_tools_modality', $learning_tools_modality ); */ return true; } add_action('save_post', 'learning_tools_save_meta_boxes');
Could you tell me what I’m doing wrong?
Thank you very much in advance and greetings!
Viewing 6 replies - 1 through 6 (of 6 total)
Viewing 6 replies - 1 through 6 (of 6 total)
- The topic ‘Meta Boxes not save values’ is closed to new replies.