Extra functie om huisnummer en straat te splitsen in functions.php
function split_street($streetStr) {
$aMatch = array();
$pattern = '#^([\w[:punct:] ]+) ([0-9]{1,5})([\w[:punct:]\-/]*)$#';
$matchResult = preg_match($pattern, $streetStr, $aMatch);
$street = (isset($aMatch[1])) ? $aMatch[1] : '';
$number = (isset($aMatch[2])) ? $aMatch[2] : '';
$numberAddition = (isset($aMatch[3])) ? $aMatch[3] : '';
return array('street' => $street, 'number' => $number, 'numberAddition' => $numberAddition);
}
In functions.php
add_action( 'gform_after_submission_4', 'wbmz_update_praktijk_locaties', 10, 2 );
function wbmz_update_praktijk_locaties( $entry, $form ) {
$created_posts = gform_get_meta( $entry['id'], 'gravityformsadvancedpostcreation_post_id' );
foreach ( $created_posts as $post ) {
$aantal_praktijken = rgar( $entry, '24' );
// Praktijk 1
$straathuis_een = rgar( $entry, '21.1' );
$straat_een_split = split_street($straathuis_een);
$straat_een = $straat_een_split['street'];
$huisnummer_een = $straat_een_split['number'];
$plaats_een = rgar( $entry, '21.3' );
$provincie_een = rgar( $entry, '21.4' );
$postcode_een = rgar( $entry, '21.5' );
$land_een = rgar( $entry, '21.6' );
$lat_een = rgar( $entry, 'gpaa_lat_21' );
$lng_een = rgar( $entry, 'gpaa_lng_21' );
$praktijk_een = [
'address' => $straathuis_een.' '.$postcode_een.' '.$plaats_een.' '.$provincie_een.' '.$land_een,
'lat' => $lat_een,
'lng' => $lng_een,
'zoom' => 14,
'street_number' => $huisnummer_een,
'street_name' => $straat_een,
'city' => $plaats_een,
'state' => $provincie_een,
'post_code' => $postcode_een,
'country' => $land_een,
];
$praktijk_een_row = array(
'field_64f04cf28c46d' => $praktijk_een
);
if($aantal_praktijken > 0):
add_row('field_6446669516b11', $praktijk_een_row, $post['post_id']);
endif;
// Praktijk 2
$straathuis_twee = rgar( $entry, '25.1' );
$straat_twee_split = split_street($straathuis_twee);
$straat_twee = $straat_twee_split['street'];
$huisnummer_twee = $straat_twee_split['number'];
$straat_twee = rgar( $entry, '25.1' );
$plaats_twee = rgar( $entry, '25.3' );
$provincie_twee = rgar( $entry, '25.4' );
$postcode_twee = rgar( $entry, '25.5' );
$land_twee = rgar( $entry, '25.6' );
$lat_twee = rgar( $entry, 'gpaa_lat_25' );
$lng_twee = rgar( $entry, 'gpaa_lng_25' );
$praktijk_twee = [
'address' => $straathuis_twee.' '.$postcode_twee.' '.$plaats_twee.' '.$provincie_twee.' '.$land_twee,
'lat' => $lat_twee,
'lng' => $lng_twee,
'zoom' => 14,
'street_number' => $huisnummer_twee,
'street_name' => $straat_twee,
'city' => $plaats_twee,
'state' => $provincie_twee,
'post_code' => $postcode_twee,
'country' => $land_twee,
];
$praktijk_twee_row = array(
'field_64f04cf28c46d' => $praktijk_twee
);
if($aantal_praktijken > 1):
add_row('field_6446669516b11', $praktijk_twee_row, $post['post_id']);
endif;
// Praktijk 3
$straathuis_drie = rgar( $entry, '26.1' );
$straat_drie_split = split_street($straathuis_drie);
$straat_drie = $straat_drie_split['street'];
$huisnummer_drie = $straat_drie_split['number'];
$plaats_drie = rgar( $entry, '26.3' );
$provincie_drie = rgar( $entry, '26.4' );
$postcode_drie = rgar( $entry, '26.5' );
$land_drie = rgar( $entry, '26.6' );
$lat_drie = rgar( $entry, 'gpaa_lat_26' );
$lng_drie = rgar( $entry, 'gpaa_lng_26' );
$praktijk_drie = [
'address' => $straathuis_drie.' '.$postcode_drie.' '.$plaats_drie.' '.$provincie_drie.' '.$land_drie,
'lat' => $lat_drie,
'lng' => $lng_drie,
'zoom' => 14,
'street_number' => $huisnummer_drie,
'street_name' => $straat_drie,
'city' => $plaats_drie,
'state' => $provincie_drie,
'post_code' => $postcode_drie,
'country' => $land_drie,
];
$praktijk_drie_row = array(
'field_64f04cf28c46d' => $praktijk_drie
);
if($aantal_praktijken > 2):
add_row('field_6446669516b11', $praktijk_drie_row, $post['post_id']);
endif;
// Praktijk 4
$straathuis_vier = rgar( $entry, '45.1' );
$straat_vier_split = split_street($straathuis_vier);
$straat_vier = $straat_vier_split['street'];
$huisnummer_vier = $straat_vier_split['number'];
$plaats_vier = rgar( $entry, '45.3' );
$provincie_vier = rgar( $entry, '45.4' );
$postcode_vier = rgar( $entry, '45.5' );
$land_vier = rgar( $entry, '45.6' );
$lat_vier = rgar( $entry, 'gpaa_lat_45' );
$lng_vier = rgar( $entry, 'gpaa_lng_45' );
$praktijk_vier = [
'address' => $straathuis_vier.' '.$postcode_vier.' '.$plaats_vier.' '.$provincie_vier.' '.$land_vier,
'lat' => $lat_vier,
'lng' => $lng_vier,
'zoom' => 14,
'street_number' => $huisnummer_vier,
'street_name' => $straat_vier,
'city' => $plaats_vier,
'state' => $provincie_vier,
'post_code' => $postcode_vier,
'country' => $land_vier,
];
$praktijk_vier_row = array(
'field_64f04cf28c46d' => $praktijk_vier
);
if($aantal_praktijken > 3):
add_row('field_6446669516b11', $praktijk_vier_row, $post['post_id']);
endif;
// Praktijk 5
$straathuis_vijf = rgar( $entry, '46.1' );
$straat_vijf_split = split_street($straathuis_vijf);
$straat_vijf = $straat_vijf_split['street'];
$huisnummer_vijf = $straat_vijf_split['number'];
$plaats_vijf = rgar( $entry, '46.3' );
$provincie_vijf = rgar( $entry, '46.4' );
$postcode_vijf = rgar( $entry, '46.5' );
$land_vijf = rgar( $entry, '46.6' );
$lat_vijf = rgar( $entry, 'gpaa_lat_46' );
$lng_vijf = rgar( $entry, 'gpaa_lng_46' );
$praktijk_vijf = [
'address' => $straathuis_vijf.' '.$postcode_vijf.' '.$plaats_vijf.' '.$provincie_vijf.' '.$land_vijf,
'lat' => $lat_vijf,
'lng' => $lng_vijf,
'zoom' => 14,
'street_number' => $huisnummer_vijf,
'street_name' => $straat_vijf,
'city' => $plaats_vijf,
'state' => $provincie_vijf,
'post_code' => $postcode_vijf,
'country' => $land_vijf,
];
$praktijk_vijf_row = array(
'field_64f04cf28c46d' => $praktijk_vijf
);
if($aantal_praktijken > 4):
add_row('field_6446669516b11', $praktijk_vijf_row, $post['post_id']);
endif;
}
}
#acf #functions #gforms #google #Gravity Forms #map #repeater #update row