Example #1
0
 function admin_init()
 {
     $sections = array(array('id' => 'meetup_facebook', 'title' => __('Facebook API', 'meetup')), array('id' => 'meetup_email', 'title' => __('Email Settings', 'meetup')));
     $settings_fields = array('meetup_facebook' => array(array('name' => 'app_id', 'label' => __('Facebook App ID ', 'meetup'), 'desc' => __('Enter the app id from your facebook application', 'meetup'), 'type' => 'text')), 'meetup_email' => array(array('name' => 'conf_subject', 'label' => __('Email Subject', 'meetup'), 'desc' => __('The subject of the confirmation email', 'meetup'), 'type' => 'text', 'default' => __('Confirm Your Booking', 'meetup')), array('name' => 'conf_body', 'label' => __('Email Content', 'meetup'), 'type' => 'wysiwyg', 'default' => meetup_admin_conf_mail_default_content())));
     //set the settings
     $this->settings_api->set_sections($sections);
     $this->settings_api->set_fields($settings_fields);
     //initialize settings
     $this->settings_api->admin_init();
 }
Example #2
0
/**
 * Handle bulk actions from the admin side
 *
 * @return void
 */
function meetup_admin_attendee_bulk_action()
{
    if (!isset($_POST['meetup_attendee_bulk_action'])) {
        return;
    }
    check_admin_referer('meetup-attendee-bulk');
    $action = $_POST['meetup_action'];
    // var_dump($action, $_POST); die();
    $meetup_id = isset($_POST['meetup_id']) ? intval($_POST['meetup_id']) : 0;
    $users = isset($_POST['meetup_user']) ? $_POST['meetup_user'] : array();
    $bookings = isset($_POST['booking_id']) ? $_POST['booking_id'] : array();
    switch ($action) {
        case 'confirm_mail':
            if (!$users) {
                return;
            }
            $meetup = get_post($meetup_id);
            $meetup_date = date_i18n('F j, Y g:ia', get_post_meta($meetup_id, 'from', true));
            $mail_title = meetup_get_option('conf_subject', 'meetup_email', __('Confirm Your Booking', 'meetup'));
            $mail_content = meetup_get_option('conf_body', 'meetup_email', meetup_admin_conf_mail_default_content());
            foreach ($users as $key => $user_id) {
                $user = get_user_by('id', $user_id);
                $booking_id = $bookings[$key];
                if (!$user || is_wp_error($user)) {
                    continue;
                }
                $search_pattern = apply_filters('meetup_email_search', array('%name%', '%meetup_title%', '%meetup_date%'));
                $replace_pattern = apply_filters('meetup_email_replace', array($user->display_name, $meetup->post_title, $meetup_date));
                $replaced = str_replace($search_pattern, $replace_pattern, $mail_content);
                $hash = hash_hmac('sha1', $user->ID . $meetup_id, 'meetup_hash');
                $query_args = array('uid' => $user->ID, 'mid' => $meetup_id, 'bid' => $booking_id, 'key' => $hash);
                $conf_args = array_merge($query_args, array('action' => 'meetup_confirm'));
                $cancel_args = array_merge($query_args, array('action' => 'meetup_cancel'));
                $conf_link = add_query_arg($conf_args, get_permalink($meetup_id));
                $cancel_link = add_query_arg($cancel_args, get_permalink($meetup_id));
                meetup_admin_send_conf_mail_user(array('mail_content' => $replaced, 'mail_title' => $mail_title, 'to' => $user->user_email, 'conf_link' => $conf_link, 'cancel_link' => $cancel_link));
                update_user_meta($user->ID, '_meetup_email_hash', $hash);
                meetup_seat_change_status($booking_id, 4);
                // set status to awaiting
            }
            break;
        case 'trash':
            foreach ($users as $key => $user_id) {
                $booking_id = $bookings[$key];
                meetup_cancel_seat($user_id, $meetup_id, $booking_id);
            }
            break;
    }
}