Advertisement
ronimarin

WP Geo + Gravity Forms

Feb 14th, 2013
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.53 KB | None | 0 0
  1. add_filter('gform_pre_render', 'gravityforms_wpgeo_mashup');
  2. function gravityforms_wpgeo_mashup($form) {
  3.     include_once( WPGEO_DIR . 'admin/admin.php' );
  4.    
  5.     //REPLACE 1 with your actual form id
  6.     $my_geo_form = 2;
  7.     if($form["id"] !=$my_geo_form)
  8.         return $form;
  9.  
  10.     // find IDs of latitude&longitude custom fields
  11.     foreach($form["fields"] as &$field){
  12.             if($field["postCustomFieldName"]=="_wp_geo_longitude") $field_lng = $field["id"];
  13.             if($field["postCustomFieldName"]=="_wp_geo_latitude") $field_lat = $field["id"];
  14.             //print_r($field);
  15.     }
  16.  
  17.     // show map only if latitude&longitude custom fields exist
  18.     if($field_lng && $field_lat ) :
  19.         // load "WP Geo" plugin
  20.         require_once( WP_PLUGIN_DIR . '/WP-Geo-3.2.dev/wp-geo.php' );
  21.         global $wpgeo;
  22.         $wpgeo = new WPGeo();
  23.         $wpgeo->admin = new WPGeo_Admin();
  24.         $zoom = 2;
  25.         $map = $wpgeo->mapScriptsInit( 20, 0,$zoom, true, false );
  26.         $map .='
  27.            <input type="hidden" name="wpgeo_map_settings_zoom" id="wpgeo_map_settings_zoom" value="" />
  28.            <input type="hidden" name="wpgeo_map_settings_type" id="wpgeo_map_settings_type" value="" />
  29.            <input type="hidden" name="wpgeo_map_settings_centre" id="wpgeo_map_settings_centre" value="" />
  30.            <input name="wp_geo_latitude" type="hidden" size="25" id="wp_geo_latitude" value="" />
  31.            <input name="wp_geo_longitude" type="hidden" size="25" id="wp_geo_longitude" value="" />
  32.            <script type="text/javascript">
  33.                <!--
  34.                jQuery(document).ready(function() {';
  35.  
  36.                     $map .='var my_geo_form= '.$my_geo_form.';';
  37.                     $map .='var field_lng= '.$field_lng.';';
  38.                     $map .='var field_lat= '.$field_lat.';';
  39.                     $map .='
  40.                    jQuery("#wp_geo_map").click(function(e) {
  41.  
  42.                        jQuery("#input_"+my_geo_form+"_"+field_lat).val(jQuery("#wp_geo_latitude").val());
  43.                        jQuery("#input_"+my_geo_form+"_"+field_lng).val(jQuery("#wp_geo_longitude").val());
  44.  
  45.                    });
  46.  
  47.                });
  48.            -->
  49.            </script>
  50.            <div id="wp_geo_map" style="width:auto; height:400px"></div>';
  51.  
  52.         // find ID of section with cssClass "wpgeo" and put the map into description
  53.         foreach($form["fields"] as &$field){
  54.                 if($field["cssClass"]=="wpgeo")$field["description"].=$map;
  55.         }
  56.     endif;
  57.     return $form;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement