/** * Define the data to be displayed in each of the custom columns for the Quote post types * * @since 0.9 * @param str $column_name The name of the column to display * @param int $post_id The current post ID * @return */ function mdjm_quote_posts_custom_column($column_name, $post_id) { if ($column_name == 'quote_event' || $column_name == 'quote_value') { $parent = wp_get_post_parent_id($post_id); } switch ($column_name) { // Quote Date case 'date': echo get_the_date('d M Y H:i:s'); break; // Event // Event case 'quote_event': if (!empty($parent)) { printf('<a href="%s">%s</a><br /><em>%s</em>', admin_url('/post.php?post={$parent}&action=edit'), mdjm_get_event_contract_id($parent), mdjm_get_event_date($parent)); } else { _e('N/A', 'mobile-dj-manager'); } break; // Client // Client case 'quote_client': global $post; echo '<a href="' . admin_url('admin.php?page=mdjm-clients&action=view_client&client_id=' . $post->post_author) . '">' . get_the_author() . '</a>'; break; // Cost // Cost case 'quote_value': echo mdjm_currency_filter(mdjm_get_event_price($parent)); break; // Date Viewed // Date Viewed case 'quote_view_date': if ('mdjm-quote-viewed' == get_post_status($post_id)) { echo date('d M Y H:i:s', strtotime(get_post_meta($post_id, '_mdjm_quote_viewed_date', true))); } else { _e('N/A', 'mobile-dj-manager'); } break; // View Count // View Count case 'quote_view_count': $count = get_post_meta($post_id, '_mdjm_quote_viewed_count', true); if (empty($count)) { $count = 0; } echo $count . _n(' time', ' times', $count, 'mobile-dj-manager'); break; } // switch }
/** * 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 }
/** * 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; }
/** * Create the HTML output for the next event column * * @param obj $item The object array for the current item * * @return str The HTML output for the next event column */ public function column_next($item) { $next = mdjm_get_clients_next_event($item->ID); if (!empty($next)) { echo '<a href="' . get_edit_post_link($next[0]->ID) . '">' . mdjm_get_event_date($next[0]->ID) . '</a>'; } else { echo __('N/A', 'mobile-dj-manager'); } }