/** * Fires after an event's status is updated. * * Add journal entry. * * @since 1.3 * @param int|bool $result The result of the status change function. False is an unsuccessful status update. * @param int $event_id The event ID. * @param str $new_status The new event status. * @param str $old_status The old event status. * @param arr $args Arguments passed to the mdjm_update_event_status function * @return void */ function mdjm_event_add_journal_after_status_change($result, $event_id, $new_status, $old_status, $args) { if (empty($result)) { return; } $reject_reason = $new_status == 'mdjm-rejected' && !empty($args['reject_reason']) ? '<br />' . $args['reject_reason'] : ''; $comment_args = array('user_id' => is_user_logged_in() ? get_current_user_id() : 1, 'event_id' => $event_id, 'comment_content' => sprintf(__('%s status updated to %s.%s', 'mobile-dj-manager'), mdjm_get_label_singular(), mdjm_get_event_status($event_id), $reject_reason)); mdjm_add_journal($comment_args); }
/** * Update the email content field with the selected template. * * * @since 1.3 * @return void */ function mdjm_user_events_dropdown_ajax() { $result['event_list'] = '<option value="0">' . __('Select an Event', 'mobile-dj-manager') . '</option>'; if (!empty($_POST['recipient'])) { $statuses = 'any'; if (mdjm_is_employee($_POST['recipient'])) { if (mdjm_get_option('comms_show_active_events_only')) { $statuses = array('post_status' => mdjm_active_event_statuses()); } $events = mdjm_get_employee_events($_POST['recipient'], $statuses); } else { if (mdjm_get_option('comms_show_active_events_only')) { $statuses = mdjm_active_event_statuses(); } $events = mdjm_get_client_events($_POST['recipient'], $statuses); } if ($events) { foreach ($events as $event) { $result['event_list'] .= '<option value="' . $event->ID . '">'; $result['event_list'] .= mdjm_get_event_date($event->ID) . ' '; $result['event_list'] .= __('from', 'mobile-dj-manager') . ' '; $result['event_list'] .= mdjm_get_event_start($event->ID) . ' '; $result['event_list'] .= '(' . mdjm_get_event_status($event->ID) . ')'; $result['event_list'] .= '</option>'; } } } $result['type'] = 'success'; $result = json_encode($result); echo $result; die; }
/** * Output the book event button. * * If you are filtering the mdjm_get_action_buttons function you may need to adjust the array key * within this function. * * @since 1.3 * @param int $event_id The event ID. * @param arr $args Arguments for button display. See $defaults. * @return str The Book Event button */ function mdjm_display_book_event_button($event_id, $args = array()) { if ('mdjm-enquiry' != mdjm_get_event_status($event_id)) { return; } $buttons = mdjm_get_event_action_buttons($event_id); if (empty($buttons) || empty($buttons[10])) { return; } $book_button = $buttons[10]; $defaults = array('colour' => mdjm_get_option('action_button_colour'), 'label' => $book_button['label'], 'fa' => 'fa fa-thumbs-o-up', 'url' => $book_button['url']); $args = wp_parse_args($args, $defaults); $output = sprintf('<a class="mdjm-action-button mdjm-action-button-%s" href="%s">%s</a>', $args['colour'], $args['url'], $args['label']); return apply_filters('mdjm_book_event_button', $output, $event_id, $args); }
/** * Display the send email form on the communications page. * * @since 1.3 * @param * @return Outputs the page content */ function mdjm_comms_page() { if (!mdjm_employee_can('send_comms')) { wp_die('<h1>' . __('Cheatin’ uh?') . '</h1>' . '<p>' . __('You do not have permission to access this page.', 'mobile-dj-manager') . '</p>', 403); } global $current_user; if (mdjm_employee_can('list_all_clients')) { $clients = mdjm_get_clients(); } else { $clients = mdjm_get_employee_clients(); } if (mdjm_employee_can('mdjm_employee_edit')) { $employees = mdjm_get_employees(); } ?> <div class="wrap"> <h1><?php _e('Client and Employee Communications', 'mobile-dj-manager'); ?> </h1> <form name="mdjm_form_send_comms" id="mdjm_form_send_comms" method="post" enctype="multipart/form-data"> <?php wp_nonce_field('send_comm_email', 'mdjm_nonce', true, true); ?> <?php mdjm_admin_action_field('send_comm_email'); ?> <input type="hidden" name="mdjm_email_from_address" id="mdjm_email_from_address" value="<?php echo $current_user->user_email; ?> " /> <input type="hidden" name="mdjm_email_from_name" id="mdjm_email_from_name" value="<?php echo $current_user->display_name; ?> " /> <?php do_action('mdjm_pre_comms_table'); ?> <table class="form-table"> <?php do_action('mdjm_add_comms_fields_before_recipient'); ?> <tr> <th scope="row"><label for="mdjm_email_to"><?php _e('Select a Recipient', 'mobile-dj-manager'); ?> </label></th> <td> <select name="mdjm_email_to" id="mdjm_email_to"> <option value=""><?php _e('Select a Recipient', 'mobile-dj-manager'); ?> </option> <optgroup label="<?php _e('Clients', 'mobile-dj-manager'); ?> "> <?php if (empty($clients)) { echo '<option disabled="disabled">' . __('No Clients Found', 'mobile-dj-manager') . '</option>'; } else { foreach ($clients as $client) { echo '<option value="' . $client->ID . '">' . $client->display_name . '</option>'; } } ?> </optgroup> <?php if (!empty($employees)) { echo '<optgroup label="' . __('Employees', 'mobile-dj-manager') . '">'; foreach ($employees as $employee) { echo '<option value="' . $employee->ID . '">' . $employee->display_name . '</option>'; } echo '</optgroup>'; } ?> </select> </td> </tr> <?php do_action('mdjm_add_comms_fields_before_subject'); ?> <tr> <th scope="row"><label for="mdjm_email_subject"><?php _e('Subject', 'mobile-dj-manager'); ?> </label></th> <td><input type="text" name="mdjm_email_subject" id="mdjm_email_subject" class="regular-text" value="<?php echo isset($_GET['template']) ? esc_attr(get_the_title($_GET['template'])) : ''; ?> " /></td> </tr> <tr> <th scope="row"><label for="mdjm_email_copy_to"><?php _e('Copy Yourself?', 'mobile-dj-manager'); ?> </label></th> <td><input type="checkbox" name="mdjm_email_copy_to" id="mdjm_email_copy_to" value="<?php echo $current_user->user_email; ?> " /> <span class="description"><?php _e('Settings may dictate that additional email copies are also sent', 'mobile-dj-manager'); ?> </span></td> </tr> <?php do_action('mdjm_add_comms_fields_before_template'); ?> <tr> <th scope="row"><label for="mdjm_email_template"><?php _e('Select a Template', 'mobile-dj-manager'); ?> </label></th> <td> <select name="mdjm_email_template" id="mdjm_email_template"> <option value="0"><?php _e('No Template', 'mobile-dj-manager'); ?> </option> <?php $template = isset($_GET['template']) ? $_GET['template'] : 0; ?> <?php echo mdjm_comms_template_options($template); ?> </select> </td> </tr> <?php do_action('mdjm_add_comms_fields_before_event'); ?> <tr> <th scope="row"><label for="mdjm_email_event"><?php printf(__('Associated %s', 'mobile-dj-manager'), mdjm_get_label_singular()); ?> </label></th> <td> <?php if (isset($_GET['event_id']) || isset($_GET['mdjm-action']) && $_GET['mdjm-action'] == 'respond_unavailable') { ?> <?php $value = mdjm_get_event_date($_GET['event_id']) . ' '; $value .= __('from', 'mobile-dj-manager') . ' '; $value .= mdjm_get_event_start($_GET['event_id']) . ' '; $value .= '(' . mdjm_get_event_status($_GET['event_id']) . ')'; ?> <input type="text" name="mdjm_email_event_show" id="mdjm_email_event_show" value="<?php echo $value; ?> " readonly="readonly" size="50" /> <input type="hidden" name="mdjm_email_event" id="mdjm_email_event" value="<?php echo $_GET['event_id']; ?> " /> <?php } else { ?> <select name="mdjm_email_event" id="mdjm_email_event"> <option value="0"><?php _e('Select an Event', 'mobile-dj-manager'); ?> </option> </select> <?php } ?> <p class="description"><?php printf(__('If no %s is selected <code>{event_*}</code> content tags may not be used', 'mobile-dj-manager'), mdjm_get_label_singular(true)); ?> </p> </td> </tr> <?php do_action('mdjm_add_comms_fields_before_file'); ?> <tr> <th scope="row"><label for="mdjm_email_upload_file"><?php _e('Attach a File', 'mobile-dj-manager'); ?> </label></th> <td><input type="file" name="mdjm_email_upload_file" id="mdjm_email_upload_file" class="regular-text" value="" /> <p class="description"><?php printf(__('Max file size %dMB. Change php.ini <code>post_max_size</code> to increase', 'mobile-dj-manager'), ini_get('post_max_size')); ?> </p> </td> </tr> <?php do_action('mdjm_add_comms_fields_before_content'); ?> <tr> <td colspan="2"> <?php $content = isset($_GET['template']) ? mdjm_get_email_template_content($_GET['template']) : ''; wp_editor($content, 'mdjm_email_content', array('media_buttons' => true, 'textarea_rows' => '10', 'editor_class' => 'required')); ?> </td> </tr> </table> <?php do_action('mdjm_post_comms_table'); ?> <?php submit_button(__('Send Email', 'mobile-dj-manager'), 'primary', 'submit', true); ?> </form> </div> <?php }
/** * Content tag: event_status. * The current event status. * * @param int The event ID. * @param * * @return str The current event status label. */ function mdjm_content_tag_event_status($event_id = '') { if (empty($event_id)) { return; } return mdjm_get_event_status($event_id); }
/** * Displays the playlist details. * * @since 1.3 * * * @return str */ function display_header() { ?> <p><?php printf(__('<strong>Date</strong>: %s', 'mobile-dj-manager'), mdjm_get_event_long_date($_GET['event_id'])); ?> <br /> <?php printf(__('<strong>Status</strong>: %s', 'mobile-dj-manager'), mdjm_get_event_status($_GET['event_id'])); ?> <br /> <?php printf(__('<strong>Type</strong>: %s', 'mobile-dj-manager'), mdjm_get_event_type($_GET['event_id'])); ?> <br /> <?php printf(__('<strong>Primary Employee</strong>: %s', 'mobile-dj-manager'), mdjm_get_employee_display_name(mdjm_get_event_primary_employee_id($_GET['event_id']))); ?> <br /> <?php printf(__('<strong>Client</strong>: %s', 'mobile-dj-manager'), mdjm_get_employee_display_name(mdjm_get_event_client_id($_GET['event_id']))); ?> <br /> <?php printf(__('<strong>Total Songs</strong>: %s', 'mobile-dj-manager'), count($this->items)); ?> <br /> <?php printf(__('<strong>Current Status</strong>: %s', 'mobile-dj-manager'), mdjm_playlist_is_open($_GET['event_id']) ? __('Open', 'mobile-dj-manager') : __('Closed', 'mobile-dj-manager')); ?> </p> <?php if ($this->count_entries($_GET['event_id']) > 0) { ?> <p> <form method="post" target="_blank"> <?php mdjm_admin_action_field('print_playlist'); ?> <input type="hidden" name="print_playlist_event_id" id="print_playlist_event_id" value="<?php echo $_GET['event_id']; ?> " /> <?php wp_nonce_field('print_playlist_entry', 'mdjm_nonce', true, true); ?> <?php submit_button('Print this List', 'primary small', 'submit_print_pl', false); ?> <?php _e('ordered by', 'mobile-dj-manager'); ?> <select name="print_order_by" id="print_order_by"> <option value="date" selected="selected"><?php _e('Date Added', 'mobile-dj-manager'); ?> </option> <option value="artist"><?php _e('Artist Name', 'mobile-dj-manager'); ?> </option> <option value="song"><?php _e('Song Name', 'mobile-dj-manager'); ?> </option> <option value="category"><?php _e('Category', 'mobile-dj-manager'); ?> </option> </select> <?php _e('and repeating headers after', 'mobile-dj-manager'); ?> <input type="text" name="print_repeat_headers" id="print_repeat_headers" class="small-text" value="20" /> <?php _e('rows', 'mobile-dj-manager'); ?> <code><?php _e('Enter 0 for no repeat of headers', 'mobile-dj-manager'); ?> </code> </form> <form method="post"> <?php mdjm_admin_action_field('email_playlist'); ?> <?php wp_nonce_field('email_playlist_entry', 'mdjm_nonce', true, true); ?> <input type="hidden" name="email_playlist_event_id" id="email_playlist_event_id" value="<?php echo $_GET['event_id']; ?> " /> <?php submit_button('Email this List', 'primary small', 'submit_email_pl', false); ?> <?php _e('ordered by', 'mobile-dj-manager'); ?> <select name="email_order_by" id="email_order_by"> <option value="date" selected="selected"><?php _e('Date Added', 'mobile-dj-manager'); ?> </option> <option value="artist"><?php _e('Artist Name', 'mobile-dj-manager'); ?> </option> <option value="song"><?php _e('Song Name', 'mobile-dj-manager'); ?> </option> <option value="category"><?php _e('Category', 'mobile-dj-manager'); ?> </option> </select> <?php _e('and repeating headers after', 'mobile-dj-manager'); ?> <input type="text" name="repeat_headers" id="repeat_headers" class="small-text" value="20" /> <?php _e('rows', 'mobile-dj-manager'); ?> <code><?php _e('Enter 0 for no repeat of headers', 'mobile-dj-manager'); ?> </code> </form> </p> <?php } }