Support

Account

Home Forums Front-end Issues How do the date of publication by a front-end form? Reply To: How do the date of publication by a front-end form?

  • Hi @buylov

    That is the disadvantage of using wp_update_post() in “acf/save_post”. If you’re sure that this function is always working on the front end, you can check if the post is posted from the front end or not. It should be something like this:

    function my_acf_save_post( $post_id ) {
        
        if(!is_admin()){
        
            // get new value
            $theDate = get_field('post-date', $post_id, false);
            if($theDate){
                $theDate = date_create_from_format('Ymd', $theDate);
                $theDate = date_format($theDate, 'Y-m-d H:i:s');
                
                $my_post = array(
                  'ID'           => $post_id,
                  'post_date'   => $theDate,
                );
                // do something
                
                // unhook this function so it doesn't loop infinitely
                remove_action('acf/save_post', 'my_acf_save_post');
    
                // update the post, which calls save_post again
                wp_update_post( $my_post );
    
                // re-hook this function
                add_action('acf/save_post', 'my_acf_save_post');
            }
        }
        
    }
    
    // run after ACF saves the $_POST['acf'] data
    add_action('acf/save_post', 'my_acf_save_post', 20);

    Yeah, it’s a little bit ugly, but I can’t think anything else for now.

    I’m not sure about your second question. Could you please attach some screenshots?