I’ve searched around a bit, and I’m having trouble finding an answer to this question. What I’m trying to do is automatically fill a custom field when a post (custom post type) is updated or published. Ideally the completed script will call out to an API and fill the custom field with the resulting information whenever a post is created or updated. For right now though, I’m just trying to automatically fill my custom field with a simple string for testing. Here’s my code:
add_action( 'save_post', 'update_tmv' );
function update_tmv($postid) {
if ( !wp_is_post_revision( $postid ) && get_post_type( $postid ) == 'inventory') {
$field_name = 'market_value';
add_post_meta($postid, $field_name, 'TEST_STRING', true);
}
}
I’ve used this page as reference: http://www.wpbeginner.com/wp-tutorials/how-to-add-custom-fields-automatically-on-post-publish-in-wordpress/ but unfortunately it’s not working. When I publish or save a post the ‘market_value’ custom field continues to be empty (also, I’m using Advanced Custom Fields to create the custom fields). Any ideas? Thanks!
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
See add_meta_box which has a lot of demo code for working with meta fields. Here is the most relevant part for you:
/* Do something with the data entered */
add_action( 'save_post', 'myplugin_save_postdata' );
/* When the post is saved, saves our custom data */
function myplugin_save_postdata( $post_id ) {
// First we need to check if the current user is authorised to do this action.
if ( 'page' == $_POST['post_type'] ) {
if ( ! current_user_can( 'edit_page', $post_id ) )
return;
} else {
if ( ! current_user_can( 'edit_post', $post_id ) )
return;
}
$mydata = 'something'; // Do something with $mydata
update_post_meta( $post_id, '_my_meta_value_key', $mydata );
}
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0