PATH:
var
/
www
/
vhosts
/
sandbox.dos-group.com
/
httpdocs
/
mendrisio
/
wp-content
/
plugins
/
events-manager
/
classes
<?php // TODO make person details more secure and integrate with WP user data class EM_Person extends WP_User{ public $custom_user_fields = array(); function __construct( $person_id = false, $username = '', $blog_id='' ){ if( is_array($person_id) ){ if( array_key_exists('person_id',$person_id) ){ $person_id = $person_id['person_id']; }elseif ( array_key_exists('user_id',$person_id) ){ $person_id = $person_id['user_id']; }else{ $person_id = $person_id['ID']; } }elseif( is_object($person_id) && get_class($person_id) == 'WP_User'){ $person_id = $person_id->ID; //create new object if passed a wp_user } if($username){ parent::__construct($person_id, $username); }elseif( is_numeric($person_id) && $person_id == 0 ){ $this->data = new stdClass(); $this->ID = 0; $this->display_name = 'Anonymous User'; $this->user_email = 'anonymous@'.preg_replace('/https?:\/\//', '', get_site_url()); }else{ parent::__construct($person_id); } $this->phone = get_metadata('user', $this->ID, 'dbem_phone', true); //extra field for EM do_action('em_person',$this, $person_id, $username); } function get_bookings($ids_only = false, $status= false){ global $wpdb; $status_condition = $blog_condition = ''; if( is_multisite() ){ if( !is_main_site() ){ //not the main blog, force single blog search $blog_condition = "AND e.blog_id=".get_current_blog_id(); }elseif(is_main_site() && !get_option('dbem_ms_global_events')){ $blog_condition = "AND (e.blog_id=".get_current_blog_id().' OR e.blog_id IS NULL)'; } } if( is_numeric($status) ){ $status_condition = " AND booking_status=$status"; }elseif( EM_Object::array_is_numeric($status) ){ $status_condition = " AND booking_status IN (".implode(',', $status).")"; } $EM_Booking = em_get_booking(); //empty booking for fields $results = $wpdb->get_results("SELECT b.".implode(', b.', array_keys($EM_Booking->fields))." FROM ".EM_BOOKINGS_TABLE." b, ".EM_EVENTS_TABLE." e WHERE e.event_id=b.event_id AND person_id={$this->ID} {$blog_condition} {$status_condition} ORDER BY ".get_option('dbem_bookings_default_orderby','event_start_date')." ".get_option('dbem_bookings_default_order','ASC'),ARRAY_A); $bookings = array(); if($ids_only){ foreach($results as $booking_data){ $bookings[] = $booking_data['booking_id']; } return apply_filters('em_person_get_bookings', $bookings, $this); }else{ foreach($results as $booking_data){ $bookings[] = em_get_booking($booking_data); } return apply_filters('em_person_get_bookings', new EM_Bookings($bookings), $this); } } /** * @return EM_Events */ function get_events(){ global $wpdb; $events = array(); foreach( $this->get_bookings()->get_bookings() as $EM_Booking ){ $events[$EM_Booking->event_id] = $EM_Booking->get_event(); } return apply_filters('em_person_get_events', $events); } function get_bookings_url(){ if( get_option('dbem_edit_bookings_page') && (!is_admin() || !empty($_REQUEST['is_public'])) ){ $my_bookings_page = get_permalink(get_option('dbem_edit_bookings_page')); $bookings_link = em_add_get_params($my_bookings_page, array('person_id'=>$this->ID, 'event_id'=>null, 'ticket_id'=>null, 'booking_id'=>null), false); }else{ $bookings_link = EM_ADMIN_URL. "&page=events-manager-bookings&person_id=".$this->ID; } return apply_filters('em_person_get_bookings_url', $bookings_link, $this); } function display_summary(){ ob_start(); ?> <table class="em-form-fields"> <tr> <td><?php echo get_avatar($this->ID); ?></td> <td style="padding-left:10px; vertical-align: top;"> <table> <?php if( $this->ID === 0 ): ?> <tr><th><?php _e('Name','events-manager'); ?> : </th><th><?php echo $this->get_name(); ?></th></tr> <?php else: ?> <tr><th><?php _e('Name','events-manager'); ?> : </th><th><a href="<?php echo $this->get_bookings_url(); ?>"><?php echo $this->get_name(); ?></a></th></tr> <?php endif; ?> <tr><th><?php _e('Email','events-manager'); ?> : </th><td><?php echo $this->user_email; ?></td></tr> <tr><th><?php _e('Phone','events-manager'); ?> : </th><td><?php echo esc_html($this->phone); ?></td></tr> </table> </td> </tr> </table> <?php return apply_filters('em_person_display_summary', ob_get_clean(), $this); } function get_summary(){ $summary = array( 'dbem_phone' => array('name' => __('Name','events-manager'), 'value' => $this->get_name()), 'user_name' => array('name' => __('Email','events-manager'), 'value' => $this->user_email), 'user_email' => array('name' => __('Phone','events-manager'), 'value' => $this->phone), ); $summary = array_merge( $summary, $this->custom_user_fields ); return apply_filters('em_person_get_summary', $summary, $this); } function get_name(){ $full_name = $this->first_name . " " . $this->last_name ; $full_name = wp_kses_data(trim($full_name)); $name = !empty($full_name) ? $full_name : $this->display_name; return apply_filters('em_person_get_name', $name, $this); } } ?>
[-] em-taxonomy-frontend.php
[open]
[-] em-mailer.php
[open]
[-] em-object.php
[open]
[-] em-taxonomy-terms.php
[open]
[-] em-tag.php
[open]
[-] em-tags-admin.php
[open]
[-] em-admin-notice.php
[open]
[-] em-bookings.php
[open]
[-] em-event.php
[open]
[-] em-categories.php
[open]
[+]
em-oauth
[-] em-taxonomy-term.php
[open]
[+]
..
[-] em-people.php
[open]
[-] em-location-post-admin.php
[open]
[-] em-booking.php
[open]
[-] em-person.php
[open]
[-] em-taxonomy-admin.php
[open]
[-] em-category.php
[open]
[-] em-tags-frontend.php
[open]
[-] em-events.php
[open]
[-] em-ticket.php
[open]
[-] em-tickets.php
[open]
[-] em-datetime.php
[open]
[-] em-categories-admin.php
[open]
[-] em-location-posts-admin.php
[open]
[-] em-exception.php
[open]
[-] em-ticket-booking.php
[open]
[-] em-bookings-table.php
[open]
[-] em-categories-frontend.php
[open]
[-] em-event-post-admin.php
[open]
[-] em-location.php
[open]
[-] em-locations.php
[open]
[-] em-location-post.php
[open]
[-] em-options.php
[open]
[-] em-tickets-bookings.php
[open]
[-] em-event-posts-admin.php
[open]
[-] em-tags.php
[open]
[-] em-permalinks.php
[open]
[-] em-calendar.php
[open]
[-] em-event-post.php
[open]
[-] em-admin-notices.php
[open]
[+]
event-locations
[-] em-notices.php
[open]