/**
  * register meta or meta_groups
  *
  * @deprecated 4.3
  *
  * @param  string $meta
  * @param  array  $args
  *
  * @return bool
  */
 public static function register($meta_id, $args = array())
 {
     global $_tribe_meta_factory;
     $defaults = array('wrap' => array('before' => '<div class="%s">', 'after' => '</div>', 'label_before' => '<label>', 'label_after' => '</label>', 'meta_before' => '<div class="%s">', 'meta_separator' => '', 'meta_after' => '</div>'), 'classes' => array('before' => array('tribe-meta'), 'meta_before' => array('tribe-meta-value')), 'register_type' => 'meta', 'register_overwrite' => false, 'register_callback' => null, 'filter_callback' => null, 'callback' => null, 'meta_value' => null, 'label' => ucwords(preg_replace('/[_-]/', ' ', $meta_id)), 'show_on_meta' => true, 'priority' => 100);
     // before we merge args and defaults lets play nice with the template
     if (!empty($args['wrap'])) {
         $args['wrap'] = wp_parse_args($args['wrap'], $defaults['wrap']);
     }
     $args = wp_parse_args($args, $defaults);
     // setup default meta ids placeholder for meta_group registration
     if ($args['register_type'] == 'meta_group' && empty($args[self::META_IDS])) {
         $args[self::META_IDS] = array();
     }
     do_action('tribe_meta_factory_register', $meta_id, $args);
     // check if we should overwrite the existing registration args if set
     if (isset($_tribe_meta_factory->{$args['register_type']}[$meta_id]) && !$args['register_overwrite']) {
         return false;
         // otherwise merge existing args with new args and reregister
     } else {
         if (isset($_tribe_meta_factory->{$args['register_type']}[$meta_id])) {
             $args = wp_parse_args($args, $_tribe_meta_factory->{$args['register_type']}[$meta_id]);
         }
     }
     $_tribe_meta_factory->{$args['register_type']}[$meta_id] = $args;
     // associate a meta item to a meta group(s) isset
     if ($args['register_type'] == 'meta' && !empty($args['group'])) {
         foreach ((array) $args['group'] as $group) {
             // if group doesn't exist - then register it before proceeding
             if (!self::check_exists($group, 'meta_group')) {
                 tribe_register_meta_group($group);
                 // if the meta_id has already been added to the group move onto the next one
             } elseif (in_array($meta_id, $_tribe_meta_factory->meta_group[$group][self::META_IDS])) {
                 continue;
             }
             $_tribe_meta_factory->meta_group[$group][self::META_IDS][] = $meta_id;
         }
     }
     // let the request know if we are successful for registering
     return true;
 }
 /**
  * Register Meta: Venue Address
  *
  * @group tribe_event_venue
  */
 tribe_register_meta('tribe_event_venue_address', array('classes' => array('meta_before' => array('location')), 'priority' => 30, 'label' => __('Address:', 'tribe-events-calendar'), 'filter_callback' => array('Tribe_Register_Meta', 'venue_address'), 'group' => 'tribe_event_venue'));
 /**
  * Register Meta: Venue Website
  *
  * @group tribe_event_venue
  */
 tribe_register_meta('tribe_event_venue_website', array('classes' => array('meta_before' => array('url')), 'label' => __('Website:', 'tribe-events-calendar'), 'priority' => 40, 'callback' => 'tribe_get_venue_website_link', 'group' => 'tribe_event_venue'));
 /**
  * Register Meta Group: Event Organizer
  */
 tribe_register_meta_group('tribe_event_organizer', array('label' => __('Organizer', 'tribe-events-calendar'), 'classes' => array('before' => array('tribe-events-meta-group tribe-events-meta-group-organizer', 'vcard'), 'label_before' => array('tribe-events-single-section-title'))));
 /**
  * Register Meta: Organizer Name (author)
  *
  * @group tribe_event_organizer
  */
 tribe_register_meta('tribe_event_organizer_name', array('classes' => array('meta_before' => array('fn', 'org')), 'label' => '', 'priority' => 10, 'filter_callback' => array('Tribe_Register_Meta', 'organizer_name'), 'group' => 'tribe_event_organizer'));
 /**
  * Register Meta: Organizer Phone
  *
  * @group tribe_event_organizer
  */
 tribe_register_meta('tribe_event_organizer_phone', array('classes' => array('meta_before' => array('tel')), 'label' => __('Phone:', 'tribe-events-calendar'), 'priority' => 20, 'callback' => 'tribe_get_organizer_phone', 'group' => 'tribe_event_organizer'));
 /**
  * Register Meta: Organizer Email
  *
    public static function custom_meta($meta_id)
    {
        global $_tribe_meta_factory;
        $fields = tribe_get_custom_fields(get_the_ID());
        $custom_meta = '';
        foreach ($fields as $label => $value) {
            $custom_meta .= Tribe_Meta_Factory::template($label, $value, $meta_id);
        }
        return apply_filters('tribe_event_pro_meta_custom_meta', $custom_meta);
    }
}
/**
 * Register Meta Group: Event Custom Meta
 *
 * @todo remove in 3.7
 */
tribe_register_meta_group('tribe_event_group_custom_meta', array('label' => __('Other', 'tribe-events-calendar-pro'), 'classes' => array('before' => array('tribe-events-meta-group tribe-events-meta-group-other'), 'label_before' => array('tribe-events-single-section-title'))));
/**
 * Register Meta: Event Custom Meta
 *
 * @todo remove in 3.7
 * @group tribe_event_custom_meta
 */
tribe_register_meta('tribe_event_custom_meta', array('label' => '', 'priority' => 60, 'filter_callback' => array('TribeEventsPro_SingleEventMeta', 'custom_meta'), 'group' => 'tribe_event_group_custom_meta'));
/**
 * Register Meta: Event Recurrence Description
 *
 * @todo remove in 3.7
 * @group tribe_event_custom_meta
 */
tribe_register_meta('tribe_event_custom_recurrence_description', array('label' => __('Recurrence Pattern:', 'tribe-events-calendar-pro'), 'priority' => 15, 'wrap' => array('before' => '', 'after' => '', 'label_before' => '<dt>', 'label_after' => '</dt>', 'meta_before' => '<dd class="%s">', 'meta_after' => '</dd>'), 'filter_callback' => array('TribeEventsPro_SingleEventMeta', 'custom_recurrence_description'), 'group' => 'tribe_event_details'));