0

I have a problem. My fields are showing in the meta box, but saving does not work:

<?php
// Create the metabox and fields
function food_meta_box_markup($object) {
    wp_nonce_field(basename(__FILE__), "meta-box-nonce");
    ?>

    <div>
        <label for="np-calories" class="np-label"><?php _e('Energy (kcal)', 'nutriplus') ?></label>
        <input name="np_calories" type="number" class="np-field"
               value="<?php echo get_post_meta($object->ID, "np_calories", true); ?>">
    </div>

    <?php
}

function add_food_meta_box() {
    add_meta_box("food-meta-box", __('Nutritional Information', 'nutriplus'), "food_meta_box_markup", "np-food", "side", "high", NULL);
}

add_action("add_meta_boxes", "add_food_meta_box");
// Save the metabox and fields
function food_save_meta_box_data($post_id) {

    // verify taxonomies meta box nonce

    if (!isset($_POST['food_meta_box_nonce']) || !wp_verify_nonce($_POST['food_meta_box_nonce'], basename(__FILE__))) {
        return;
    }

    // return if autosave
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }

    // Check the user's permissions.
    if (!current_user_can('edit_post', $post_id)) {
        return;
    }

    if ($post->post_type == "np-food") {

        // store custom fields values
        // energy kcal string
        if (isset($_REQUEST['np_calories'])) {
            update_post_meta($post_id, 'np_calories', sanitize_text_field($_POST['np_calories']));
        }
    }
}

add_action('save_post_food', 'food_save_meta_box_data');

?>

My Metabox values don´t save :(

Regards

Buddy

1 Answer 1

0

This is my working code

// Add meta box
function frontpage_meta_boxes( $post ){
    global $post;

    if(!empty($post))
    $page_template = get_post_meta( $post->ID, '_wp_page_template', true );
    {
        $pageTemplate = get_post_meta($post->ID, '_wp_page_template', true);

        if($pageTemplate == 'page-home.php' )
        {
            add_meta_box( 'frontpage_meta_box', __( 'Features' ), 'frontpage_meta_box', 'page', 'advanced', 'high' );
        }
    }
}
add_action( 'add_meta_boxes_page', 'frontpage_meta_boxes' );

// builds our meta box
function frontpage_meta_box( $post ){
    // make sure the form request comes from WordPress
    wp_nonce_field( basename( __FILE__ ), 'frontpage_meta_box_nonce' );
    // retrieve the _manuf_url current value
    $manufacturer_url = get_post_meta( $post->ID, '_manuf_url', true );

    ?>
        <h3><?php _e( 'Manufacturer URL' ); ?></h3>
            <p>
                <input type="text" name="manufacturer-url" value="<?php echo $manufacturer_url; ?>" /> 
            </p>

    <?php
}

// saves our data
function frontpage_save_meta_box_data( $post_id ){
    // verify meta box nonce
    if ( !isset( $_POST['frontpage_meta_box_nonce'] ) || !wp_verify_nonce( $_POST['frontpage_meta_box_nonce'], basename( __FILE__ ) ) ){
        return;
    }
    // return if autosave
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ){
        return;
    }
  // Check the user's permissions.
    if ( ! current_user_can( 'edit_post', $post_id ) ){
        return;
    }
    // manufacturer url string
    if ( isset( $_REQUEST['manufacturer-url'] ) ) {
        update_post_meta( $post_id, '_manuf_url', sanitize_text_field( $_POST['manufacturer-url'] ) );
    }
    // store custom fields values
}
add_action( 'save_post_page', 'frontpage_save_meta_box_data' );
1
  • That helped me a lot. My fields are now Saving :) Now I need to go to the next task. Thank you so much :)
    – BuddyHoli
    Feb 13, 2020 at 20:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.