function process_my_events_shortcode($args = array(), $content = false) { $args = $this->_preparse_arguments($args, array('user' => false, 'class' => 'eab-my_events', 'show_titles' => 'yes', 'sections' => 'organized,yes,maybe,no')); if (is_numeric($args['user'])) { $args['user'] = $this->_arg_to_int($args['user']); } else { if ('current' == trim($args['user'])) { $user = wp_get_current_user(); $args['user'] = $user->ID; } else { $args['user'] = false; } } if (empty($args['user'])) { return $content; } $args['sections'] = $this->_arg_to_str_list($args['sections']); $args['show_titles'] = $this->_arg_to_bool($args['show_titles']); $output = ''; // Check if the user can organize events $post_type = get_post_type_object(Eab_EventModel::POST_TYPE); if (in_array('organized', $args['sections']) && user_can($args['user'], $post_type->cap->edit_posts)) { $output .= '<div class="' . $args['class'] . ' eab-bp-organized">' . ($args['show_titles'] ? '<h4>' . __('Organized Events', Eab_EventsHub::TEXT_DOMAIN) . '</h4>' : '') . Eab_Template::get_user_organized_events($args['user']) . '</div>'; } if (in_array('yes', $args['sections'])) { $output .= '<div class="' . $args['class'] . ' eab-bp-rsvp_yes">' . ($args['show_titles'] ? '<h4>' . __('Attending Events', Eab_EventsHub::TEXT_DOMAIN) . '</h4>' : '') . Eab_Template::get_user_events(Eab_EventModel::BOOKING_YES, $args['user']) . '</div>'; } if (in_array('maybe', $args['sections'])) { $output .= '<div class="' . $args['class'] . ' eab-bp-rsvp_maybe">' . ($args['show_titles'] ? '<h4>' . __('Maybe attending Events', Eab_EventsHub::TEXT_DOMAIN) . '</h4>' : '') . Eab_Template::get_user_events(Eab_EventModel::BOOKING_MAYBE, $args['user']) . '</div>'; } if (in_array('no', $args['sections'])) { $output .= '<div class="' . $args['class'] . ' eab-bp-rsvp_no">' . ($args['show_titles'] ? '<h4>' . __('Not attending Events', Eab_EventsHub::TEXT_DOMAIN) . '</h4>' : '') . Eab_Template::get_user_events(Eab_EventModel::BOOKING_NO, $args['user']) . '</div>'; } $output = $output ? $output : $content; return $output; }