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(); }
/** * 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; } }