Search code examples
phpwordpresspost-meta

Wordpress Add, Update and Get Post Meta not working


The below code is added into a page template file, when someone loads the page it will add the post meta if it didn't exist, it will update the post meta if it did exist. When I get the post meta and then return it, the outcome is "Array".

It leads me to believe the post meta is not being made or the get isn't working.

global $post;
if ( ! add_post_meta( $post->ID, 'offer_voucher_evergreen_deadline', '2018-11-16 13:00:00')) { 
    update_post_meta($post->ID, 'offer_voucher_evergreen_deadline', '2018-11-16 13:00:00');
}

$test = get_post_meta($post->ID, 'offer_voucher_evergreen_deadline', true);
echo $test;

Solution

  • Try This:

    global $post;
    $meta_value = get_post_meta($post->ID, 'offer_voucher_evergreen_deadline', true);
    if( !empty($meta_value) ) {
       update_post_meta($post->ID, 'offer_voucher_evergreen_deadline', '2018-11-16 13:00:00');
    }else {
       add_post_meta( $post->ID, 'offer_voucher_evergreen_deadline', '2018-11-16 13:00:00')
    }
    
    $test = get_post_meta($post->ID, 'offer_voucher_evergreen_deadline', true);
    echo $test; //return $test;
    

    Note: Use a 3'rd param in get_post_meta() function, which will return a single value

    $test = get_post_meta($post->ID, 'offer_voucher_evergreen_deadline', true);
    echo $test; //return $test;
    

    See get_post_meta() function for more details.