I'm teaching myself from a plugin tutorial dvd, everything was going fine. I've setup custom_post_types and the metaboxes with no issues. The issue i have is a fatal error when i update/publish the post
Fatal error: Uncaught ArgumentCountError: Too few arguments to function mdb_save_metaboxes(), 1 passed in C:\xampp\htdocs\wordpress\wp-includes\class-wp-hook.php on line 310 and exactly 3 expected in C:\xampp\htdocs\wordpress\wp-content\plugins\maxi_metaboxes\maxi_metabox_types.php:45 Stack trace: #0
To check i was not adapting the code incorrectly, I back tracked and used the tutors metaboxes and code that worked for him, but it still doesn't.
I have a good idea it is to do with the verify_nonce check in the mdb_save_metaboxes function. Any help will be greatly accepted.
<?php /* * Plugin Name: Driver Bible metaboxes * Plugin URI: * Description: Adds metaboxes to Driver Bible * Version: 1.0 * Author: Fuzzy * Author URI: * License: GPL v2 or later * License URI: https://www.gnu.org/licenses/gpl-2.0.html */ function mdb_add_metaboxes() { add_meta_box('mdb-metaboxes', 'Dealer Info', 'mdb_metaboxes_container', 'dealers', 'normal', 'high', 'null'); } add_action('add_meta_boxes', 'mdb_add_metaboxes'); //Add metaboxes function mdb_metaboxes_container($post) { wp_nonce_field(basename(__FILE__), "meta-box-nonce"); ?> <div> <label for="input-metaboxes">Cal:</label> <input type="text" name="input-metabox" value="<?php echo get_post_meta($post->ID, "input-metabox", true); ?>"> <br/> <label for="textarea-metaboxes">text area:</label> <textarea type="text" name="textarea-metabox"><?php echo get_post_meta($post->ID, "textarea-metabox", true); ?></textarea> <br/> </div> <?php } //Saving metabox updates //================================================================================ //permissions check add_action('save_post', 'mdb_save_metaboxes'); function mdb_save_metaboxes($post_id, $post, $update){ if (!isset($_POST["meta-box-nonce"]) || !wp_verify_nonce($_POST["meta-box-nonce"], basename(__FILE__))) return $post_id; if(!current_user_can("edit_post", $post_id)) return $post_id; if(defined("DOING_AUTOSAVE") && DOING_AUTOSAVE) return $post_id; // save $input_metabox =''; $textarea_metabox =''; if(isset($_POST["input-metabox"])) { $input_metabox = $_POST["input-metabox"]; } update_post_meta($post_id, "input-metabox", $input_metabox ); if(isset($_POST["textarea-metabox"])) { $textarea_metabox = $_POST["textarea-metabox"]; } update_post_meta($post_id, "textarea-metabox", $textarea_metabox ); }