april-s
3/10/2016 - 4:25 PM

Connect a Gravity Form upload field to ACF Gallery Field when creating a front-end post submission, requires the jdn_create_image_id functio

Connect a Gravity Form upload field to ACF Gallery Field when creating a front-end post submission, requires the jdn_create_image_id function from https://gist.github.com/joshuadavidnelson/164a0a0744f0693d5746

<?php
 /**
  * Attach images uploaded through Gravity Form to ACF Gallery Field
  *
  * @author Joshua David Nelson, josh@joshuadnelson.com
  * @return void
  */
$gravity_form_id = 1; // gravity form id, or replace {$gravity_form_id} below with this number
add_filter( "gform_after_submission_{$gravity_form_id}", 'jdn_set_post_acf_gallery_field', 10, 2 );
function jdn_set_post_acf_gallery_field( $entry, $form ) {
	
	$gf_images_field_id = 1; // the upload field id
	$acf_field_id = 'field_546d0ad42e7f0'; // the acf gallery field id
	
	// get post
	if( isset( $entry['post_id'] ) ) {
		$post = get_post( $entry['post_id'] );
		if( is_null( $post ) )
			return;
	} else {
		return;
	}
	
	// Clean up images upload and create array for gallery field
	if( isset( $entry[ $gf_images_field_id ] ) ) {
		$images = stripslashes( $entry[ $gf_images_field_id ] );
		$images = json_decode( $images, true );
		if( !empty( $images ) && is_array( $images ) ) {
			$gallery = array();
			foreach( $images as $key => $value ) {
				// NOTE: this is the other function you need: https://gist.github.com/joshuadavidnelson/164a0a0744f0693d5746
				if( function_exists( 'jdn_create_image_id' ) )
					$image_id = jdn_create_image_id( $value, $post->ID );
				
				if( $image_id ) {
					$gallery[] = $image_id;
				}
			}
		}
	}
	
	// Update gallery field with array
	if( ! empty( $gallery ) ) {
		update_field( $acf_field_id, $gallery, $post->ID );
		
		// Updating post
		wp_update_post( $post );
	}
}