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;
    }
}

Geef een reactie 0