Skip to content

Instantly share code, notes, and snippets.

@noeltock
Created December 27, 2011 14:02
Show Gist options
  • Select an option

  • Save noeltock/1523749 to your computer and use it in GitHub Desktop.

Select an option

Save noeltock/1523749 to your computer and use it in GitHub Desktop.
// Edit term page
function brewery_edit_meta_field($term) {
// Address
$address = get_metadata($term->taxonomy, $term->term_id, 'brewery_address', true);
$lat = get_metadata($term->taxonomy, $term->term_id, 'brewery_lat', true);
$long = get_metadata($term->taxonomy, $term->term_id, 'brewery_long', true);
// Grab Lat & Long if not Available
if (!$lat && $address) {
$cleanaddress = urlencode($address);
if( !$geocode = get_transient( '_location_' . $cleanaddress ) ) {
$geocode = @file_get_contents('http://maps.google.com/maps/api/geocode/json?address=' . $cleanaddress . '&sensor=false');
}
if( !$geocode )
continue;
$output= json_decode($geocode);
$lat = $output->results[0]->geometry->location->lat;
$long = $output->results[0]->geometry->location->lng;
}
// Other Details
$website = get_metadata($term->taxonomy, $term->term_id, 'brewery_website', true);
$phone = get_metadata($term->taxonomy, $term->term_id, 'brewery_phone', true);
$email = get_metadata($term->taxonomy, $term->term_id, 'brewery_email', true);
$logo = get_metadata($term->taxonomy, $term->term_id, 'brewery_logo', true);
?>
<tr class="form-field">
<th scope="row" valign="top"><label for="brewery_address">Address (GMaps Friendly)</label></th>
<td><input type="text" name="brewery_address" id="brewery_address" value="<?php echo $address; ?>"/></td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="brewery_latlong">Lat / Long</label></th>
<td><input style="width:30%;" type="text" name="brewery_lat" id="brewery_lat" value="<?php echo $lat; ?>"/> / <input style="width:30%;" type="text" name="brewery_long" id="brewery_long" value="<?php echo $long; ?>"/></td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="brewery_website">Website URL</label></th>
<td><input type="text" name="brewery_website" id="brewery_website" value="<?php echo $website; ?>"/></td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="brewery_phone">Phone</label></th>
<td><input type="text" name="brewery_phone" id="brewery_phone" value="<?php echo $phone; ?>"/></td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="brewery_email">E-mail</label></th>
<td><input type="text" name="brewery_email" id="brewery_email" value="<?php echo $email; ?>"/></td>
</tr>
<tr class="form-field">
<th scope="row" valign="top"><label for="brewery_logo">Logo URL</label></th>
<td><input type="text" name="brewery_logo" id="brewery_logo" value="<?php echo $logo; ?>"/></td>
</tr>
<?php
}
add_action( 'brewery_edit_form_fields', 'brewery_edit_meta_field', 10, 2 );
// Save Term Meta
function save_brewery_custom_meta($term_id)
{
if (isset($_POST['brewery_address']))
update_metadata($_POST['taxonomy'], $term_id, 'brewery_address', $_POST['brewery_address']);
if (isset($_POST['brewery_lat']))
update_metadata($_POST['taxonomy'], $term_id, 'brewery_lat', $_POST['brewery_lat']);
if (isset($_POST['brewery_long']))
update_metadata($_POST['taxonomy'], $term_id, 'brewery_long', $_POST['brewery_long']);
if (isset($_POST['brewery_website']))
update_metadata($_POST['taxonomy'], $term_id, 'brewery_website', $_POST['brewery_website']);
if (isset($_POST['brewery_phone']))
update_metadata($_POST['taxonomy'], $term_id, 'brewery_phone', $_POST['brewery_phone']);
if (isset($_POST['brewery_email']))
update_metadata($_POST['taxonomy'], $term_id, 'brewery_email', $_POST['brewery_email']);
if (isset($_POST['brewery_logo']))
update_metadata($_POST['taxonomy'], $term_id, 'brewery_logo', $_POST['brewery_logo']);
}
add_action( 'edited_brewery', 'save_brewery_custom_meta', 10, 2);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment