Support

Account

Forum Replies Created

  • Sometimes you just have to “say things out loud” to realize things like this–or in our case, post them to the support forum. Thanks for your help! It was causing me great agony in trying to test the custom system.

  • Well, I figured it out–I incorrectly set the args for the wp_update_post(), using 'post_id' when I should have used 'ID' to define the argument for the post’s ID. Correcting this had rendered the function to work correctly.

    Thank you for all your help, John!

  • I am getting the correct $status value from the form. However, the 'post_status' => $status is not being correctly passed from the filter acf/pre_post_save as shown in the function above. Regardless of the value of $status, it still saves the post as published. I’ve even left the post_status definition in the acf_form() declaration undefined and blank just to see.

    The value of $status is not being applied correctly.

  • I updated the $_POST['submitted']. Using the filter, if I submit the form with “submitted” unchecked (you can see where $status was output using echo and it show ‘draft’ as intended):

    Array
    (
        [_acfnonce] => 
        [_acfchanged] => 1
        [_acfform] => a1hNb1hBTmg2Z0J1V3BDbTdpbm5qeDVNcVNUOEI0OElsb05hMmtDaFpBdlFOS29HaURtZFZkVTJrQ0JlUGFNRms4bkE3K0Q5M3NHeFBodTdCRmFjdVczbEFPZ0pnOFNOcmdsempQaDdBS2NVUTJEbitXQldpM2JtQmpZMnVGdC83NHZoNFNYNjE0dzlteXFDb1ZSdVBiVkE5Uk4zZ0xxZVZQTXkwUDBVK3BBMndxZnZiYlRWN1BZejF4Z2J4RWVkSTdZL2xLWU1GdEFBcnVCekhwQjRGTnU5MCtMc2N4VzJVdGoxR2JSRTlYL2RicDh3VllIUCs2SHc1T0dtbEIxZnVSb21IVGlTcVh0bUhrZWxmc2RtWFhna0lXU25zTzlrcWxsajJZdVh6WllDLysyRzNHZU9YUmFlZ0xPOXNramo5b1kyZHBwVUJjN1dXaTEwUmV0OUdiUlR4RkxOcGt5d3BjUllDYTVvQlMrdzlEK2hlVjdUamltbndaOXNoQ3ZWUzJhTzhqNmN2QmlPQUU3R213ZEdnd3J4Lzd6dTBHZnN2MEh1OE1hQzFsY0t3UEZDWFpxR3F1L0RHVitKZ2dDN3Q0aUJJSWo1WmxKaU95NlY1dUR6TjYvZ2RVbFFYTnVoQVNpMElQVWRhMmpCcDNwOFk1a3psVkMrb29qak5QVUVJbGVhT3RFdC9GSTBNa0pVOTJLR2d4NEZDdmpHd1hLQ2JldVJENHhKbmEwWitJQnRtVEVWdUZKT0Z5Y3BVUGovcndFc0xjTUEyb1gva0JXMk4xWlI2N2IzWUd3bkphWjNyY0kvYVBtK3V4MmVtbUhDc2Y0MzZxUXVuVCtLRHplOXFBSnkxKzRaRE5PNjA4Q21KWmdUV3Y1bWVlS1ZkM0tlbGRyemd0OGFTTkhEdzNFWXRUNTN4R2FaM3VNV2pMaE1QWGVpZFdnUGUrYzdJbjBqQnN6Tk9OYWVSYnpUdU1iWlBBZmxLZWdzUnk3amUxcVVHQ3l3YVVGY21kclpXcUhQN2Mrb2x4N2xKT0lKYnh2QmtaZ29EOWhhR1VybnpEV0NtN1h2QlQ0SjBJaWxFS1Q2QW1XL1VVRFpyQjcwdUlHUmh2QVFmN2p5aFlJVVpDc2QyaHNsSVdRdC82WElvdnpKd2t1aWxYMWQ1cVhkbjdrQk9uT3JwV2FWdG9qQlBSQk93Nk9sLzE1WXpOMmtTcEdBSVVCWlRCSnRKNXRCYkF5SWY0Qk0wemVENGpiRW1EZUNDa1EvZktLTlpwVEdQLzlFb1lWRDh5SnVHVzVPb25qZTlEZEtGZHRlVUtFRGRhQUFnditKSzJOUmpscWtxeDQxVlFhWkdGTFFHQk96aFlXemc0NWFnd0IyeW95V2JqM28rQ1RIUFl1QXJkdEtFRG56OVRPMGEyUVhlSlJNSno5RG1KNnBhMEN6VGtzTS9SYmhCeEYvTkZzU2xxdUh4ZkdFaTAvdk9aZTZveHBVWXlPRXEwbmRha01qL3MybUs1ZUVZYTZYczAzS21vLy9EamNTVmoyUmVnT091eUlWWHFSVjYxd2RRSms5YmJ3Z1JndWIzbHQyNUUyYmNvZTlNYXZpcmsyQ0NVUk5VK0xrc2JvblNaL3dqWlNIVHB4Z2twWWlmMjNOQ2c9PTo6owsszaga9XIEzYCy+P8j9Q==
        [acf] => Array
            (
                [field_58dff18e13f03] => Test
                [field_58dff21213f05] => Test
                [field_58dff27513f08] => Test
                [_validate_email] => 
            )
    
    )
    draft

    With the checkbox checked you can see $status outputs ‘submitted’ as intended:

    Array
    (
        [_acfnonce] => 
        [_acfchanged] => 1
        [_acfform] => ME1VRWtzdzJLVVo5TXBmZWphZFJMNkJ4T0JobzZpNFZlOFp2NDNkUi9SWUtjYmhFblExQkxSem5WaHVSNnZ1UFhQQlZML0xpYW1vQkZWZ1Rnb3k5ZGtIYUVLYlJvc2NOQ3hCbldqd0NMTVgvNkdEUjg4NnU3emlyZXJlN2hoRjlmVkplNy8rR0xNRXZUdHh5YVN0a081K1oyWDUyOFRJcFZBeFVIN2ZUaFhHTjY1UG42WWdaSUxrZzhyTXFTTTJuN1FDQklMTERCbVIySjM3R3hXS0RzakU2MnJLZkNQWXpONjYxT3prdXNRQ0RnT2xaZGVjSWdwMDFIYUxWTlExNkxaaHZLZkZoUUt5MzBybWs4MzczaUtMZFlmMXlKNkMzaVhnempSS1RCZmozZXE0Z0lPUHpTU3lWVkRIWFZ1SnhMTldJZHRtbDA1Y245NDNjQm9Mei85TVZsbjVoS2xvaVRUaFYxem9ma1hQcEJabjZCMGdJdjh4OWZrVW15S3RRRi93TVM3bkdUamFXM2oxWmVIdytEbko1YzZMV3Ztdm8ybnBsRllsTExGcnBncG5WbUVOSmZHNG0vS3dZUklzRnBBT0VoaGcyVlBXWGlWb2xJTmFhNkhGWGtzSitmQWdZUUxhbXBGZzdiMkhVQlJPUVM2L2V0T2VRbWV3ZHRGTlRsR1VRamxZbzY5K1BDU1c5Y1p5NFVhTWhOWkM5dkJXZFBFNWZ0MkVDWDZVQ0tSU0k1T0x1OVB6enhRT1B6R01OWVg5UE9hZjlLN0d2Rk1XalVrdnMzbW1VUGpZWk9Odk1iL2tUUmQ2dUFIWVNIU2l2ZlNnYkVUZmlYMnV1cUU2eXJDdTNINWFyMzR4dUpNZElTY0ZUdEl0UlcrR1paa004anJIWlNybStFbXNxVkNDdGpnNlk2RjI1VGZHTXN1SkFDZG5GTmRnYWk5T2paY2Q2Mjhsa0Fvcmhrek1maWZjTVBxY2NXMW9palVrYXZTMTZKUTQ0dEpuMDBra0JuUXJpSlVFSTFlbi9NQ0lZeUd0VnE4QXozRk84c1UwVHFRa205WFAzdDFCeXJkR1N4ZFhyeVh4OWJDdHlsQ2Q0ZWVkSzRBQW5JZWpBQ25ycE81a2NJaHR4dE1HS0VHbnZwM2VNbnc5V0RDOXA2WVlWR3VXeGE4VWpPeEtHVThqejdLcU1sWHRJWnVidHRCYld0VzRsL0NEc1hnS1V6Mko5a2JhbW4rWDljS2c3UWxCWS9BZ05sNFd0dUYydEd5R3F4TFFseWVtdFNCYUw3Z1dxcFVSRzVNTjl0VXA2M1RuMzc5WGNJd0JJTjVsaDZJTDc3b3R1cVhkdVJtQ0c0ckt0ODVTdXNmdy8yTGMwM2VNKzc5cnUxWjJ5cURhWENTOWlhWENvZHdEOWpicjkzL25tMEtReE1ZMHhTajM2K2g5bEUzUzJmemNBMHYreDYwRGhNNHFNMXYzZEpHYWFsR0dkNkpMQXVQaE9vUWxaRmpvRjNGenhnNWc5RTAwSXQvb3h1S2haSXZLd2doaitvcTRKWGRKSVE4TlNJSkNqQTRIdEM2Y0Nzd3Q0Y3g5cytNTENIR0NldEtaNFlZeW1nekVFWGtraXRaWk0vbTBKMlBMSmxpdmNUbnF3Z2c9PTo6/ovmIPCQDeflxg6kNBOk6Q==
        [acf] => Array
            (
                [field_58dff18e13f03] => Test
                [field_58dff21213f05] => Test
                [field_58dff27513f08] => Test
                [_validate_email] => 
            )
    
        [submitted] => submitted
    )
    submitted
  • Hi John,

    Thank you for your reply–I have the checkbox as an added field outside of the actual ACF form. I did test the function (see revised function below to see how I tested) for a scenario with the checkbox both checked and unchecked. In each case, the variable $status is being set correctly. But, it’s not being set correctly on save.

    The form:

    <form id="new-program" class="new-program" action method="post">
    				<?php acf_form( array(
    					'post_id'				=>	'new_post',
    					'new_post'				=>	array(
    													'post_type'		=>	'program',
    					),
    					'submit_value'			=>	'Submit Program',
    					'id'					=>	'new-program',
    					'post_title'			=>	true,
    					'post_content'			=>	false,
    					'form'					=>	false,
    					'return'				=>	$return_url,
    					'label_placement'		=>	'top',
    					'instruction_placement'	=>	'label',
    					'uploader'				=>	'basic',
    					'field_el'				=>	'ul',
    					
    					'fields'				=>	array( 
    													'program-submission_blind_description', 
    													'program-submission_blind_abstract', 
    													'program-submission_blind_learneroutcomes',
    					),
    				)) ; ?>
    				
    				<input type="checkbox" id="submitted" name="submitted" value="submitted" />
    				<label for="submitted" id="label-submitted">
    					I confirm that my submission is complete and ready for review. I understand that once I submit this program, I cannot edit it.
    				</label>
    
    				<button type="submit">Save Draft</button>
    			</form>

    The filter:

    add_filter( 'acf/pre_save_post', 'merge_pre_save_post', 10, 1 );
    	function merge_pre_save_post( $post_id ) {
    		
    		if( is_admin() ) :
    			return;
    		endif;
    		
    		//Set the status based on the form
    		if( $_POST['acf']['submitted'] == 'submitted' ) : $status = 'submitted'; else : $status = 'draft'; endif;
    		
    		//FOR TEST ONLY
    		print_r( $_POST );
    		echo $status;
    		exit;
    		
    		//Check if it's not a new post
    		if( $post_id != 'new_post' ) : 
    			wp_update_post( array(
    				'post_id'		=>	$post_id,
    				'post_status'	=>	$status,
    			) );
    		
    		//
    		else :
    			$post_id = wp_insert_post( array(
    				'post_status'	=>	$status,
    			) );
    		
    		endif;
    		
    		return $post_id;
    	}

    In both cases–checked and unchecked–the value for $status is correct; it’s just not being applied to the post correctly.

Viewing 5 posts - 1 through 5 (of 5 total)