/** * Renders the 'Export' tab on the Reports Page * * @since 1.4 * @return void */ function mdjm_reports_tab_export() { if (!mdjm_employee_can('run_reports')) { wp_die(__('You do not have permission to export reports', 'mobile-dj-manager'), __('Error', 'mobile-dj-manager'), array('response' => 403)); } $label_single = mdjm_get_label_singular(); $label_plural = mdjm_get_label_plural(); ?> <div id="mdjm-dashboard-widgets-wrap"> <div class="metabox-holder"> <div id="post-body"> <div id="post-body-content"> <?php do_action('mdjm_reports_tab_export_content_top'); ?> <div class="postbox mdjm-export-events-earnings"> <h3><span><?php _e('Export Transaction History', 'mobile-dj-manager'); ?> </span></h3> <div class="inside"> <p><?php _e('Download a CSV of all transactions recorded.'); ?> </p> <form id="mdjm-export-txns" class="mdjm-export-form mdjm-import-export-form" method="post"> <?php mdjm_insert_datepicker(array('id' => 'mdjm-txn-export-start', 'altfield' => 'txn_start')); ?> <?php echo MDJM()->html->date_field(array('id' => 'mdjm-txn-export-start', 'name' => 'display_start_date', 'placeholder' => __('Select Start Date', 'mobile-dj-manager'))); ?> <?php echo MDJM()->html->hidden(array('name' => 'txn_start')); ?> <?php mdjm_insert_datepicker(array('id' => 'mdjm-txn-export-end', 'altfield' => 'txn_end')); ?> <?php echo MDJM()->html->date_field(array('id' => 'mdjm-txn-export-end', 'name' => 'display_end_date', 'placeholder' => __('Select End Date', 'mobile-dj-manager'))); ?> <?php echo MDJM()->html->hidden(array('name' => 'txn_end')); ?> <select name="txn_status"> <option value=""><?php _e('All Statuses', 'mobile-dj-manager'); ?> </option> <option value="Completed"><?php _e('Completed', 'mobile-dj-manager'); ?> </option> <option value="Pending"><?php _e('Pending', 'mobile-dj-manager'); ?> </option> <option value="Cancelled"><?php _e('Cancelled', 'mobile-dj-manager'); ?> </option> </select> <?php wp_nonce_field('mdjm_ajax_export', 'mdjm_ajax_export'); ?> <input type="hidden" name="mdjm-export-class" value="MDJM_Batch_Export_Txns"/> <span> <input type="submit" value="<?php _e('Generate CSV', 'mobile-dj-manager'); ?> " class="button-secondary"/> <span class="spinner"></span> </span> </form> </div><!-- .inside --> </div><!-- .postbox --> <div class="postbox mdjm-export-events"> <h3><span><?php printf(__('Export %s', 'mobile-dj-manager'), $label_plural); ?> </span></h3> <div class="inside"> <p><?php printf(__('Download a CSV of %s data.'), $label_plural); ?> </p> <form id="mdjm-export-events" class="mdjm-export-form mdjm-import-export-form" method="post"> <?php mdjm_insert_datepicker(array('id' => 'mdjm-event-export-start', 'altfield' => 'event_start')); ?> <?php echo MDJM()->html->date_field(array('id' => 'mdjm-event-export-start', 'name' => 'display_start_date', 'placeholder' => __('Select Start Date', 'mobile-dj-manager'))); ?> <?php echo MDJM()->html->hidden(array('name' => 'event_start')); ?> <?php mdjm_insert_datepicker(array('id' => 'mdjm-event-export-end', 'altfield' => 'event_end')); ?> <?php echo MDJM()->html->date_field(array('id' => 'mdjm-event-export-end', 'name' => 'display_end_date', 'placeholder' => __('Select End Date', 'mobile-dj-manager'))); ?> <?php echo MDJM()->html->hidden(array('name' => 'event_end')); ?> <select name="event_status"> <option value="any"><?php _e('All Statuses', 'mobile-dj-manager'); ?> </option> <?php foreach (mdjm_all_event_status() as $status => $label) { ?> <option value="<?php echo $status; ?> "><?php echo $label; ?> </option> <?php } ?> </select> <?php wp_nonce_field('mdjm_ajax_export', 'mdjm_ajax_export'); ?> <input type="hidden" name="mdjm-export-class" value="MDJM_Batch_Export_Events"/> <span> <input type="submit" value="<?php _e('Generate CSV', 'mobile-dj-manager'); ?> " class="button-secondary"/> <span class="spinner"></span> </span> </form> </div><!-- .inside --> </div><!-- .postbox --> <div class="postbox mdjm-export-clients"> <h3><span><?php _e('Export Clients', 'mobile-dj-manager'); ?> </span></h3> <div class="inside"> <p><?php _e('Download a CSV of clients.', 'mobile-dj-manager'); ?> </p> <form id="mdjm-export-clients" class="mdjm-export-form mdjm-import-export-form" method="post"> <?php wp_nonce_field('mdjm_ajax_export', 'mdjm_ajax_export'); ?> <input type="hidden" name="mdjm-export-class" value="MDJM_Batch_Export_Clients"/> <input type="submit" value="<?php _e('Generate CSV', 'mobile-dj-manager'); ?> " class="button-secondary"/> </form> </div><!-- .inside --> </div><!-- .postbox --> <?php if (mdjm_is_employer()) { ?> <div class="postbox mdjm-export-employees"> <h3><span><?php _e('Export Employees', 'mobile-dj-manager'); ?> </span></h3> <div class="inside"> <p><?php _e('Download a CSV of employees.', 'mobile-dj-manager'); ?> </p> <form id="mdjm-export-employees" class="mdjm-export-form mdjm-import-export-form" method="post"> <?php wp_nonce_field('mdjm_ajax_export', 'mdjm_ajax_export'); ?> <input type="hidden" name="mdjm-export-class" value="MDJM_Batch_Export_Employees"/> <input type="submit" value="<?php _e('Generate CSV', 'mobile-dj-manager'); ?> " class="button-secondary"/> </form> </div><!-- .inside --> </div><!-- .postbox --> <?php } ?> </div><!-- .post-body-content --> </div><!-- .post-body --> </div><!-- .metabox-holder --> </div><!-- #mdjm-dashboard-widgets-wrap --> <?php }
function mdjm_admin_toolbar($admin_bar) { if (!current_user_can('mdjm_employee')) { return; } // Build out the toolbar menu structure $admin_bar->add_menu(array('id' => 'mdjm', 'title' => sprintf(__('MDJM %s', 'mobile-dj-manager'), mdjm_get_label_plural()), 'href' => mdjm_employee_can('read_events') ? admin_url('edit.php?post_type=mdjm-event') : '#', 'meta' => array('title' => __('MDJM Event Management', 'mobile-dj-manager')))); if (mdjm_employee_can('read_events')) { // Events $admin_bar->add_menu(array('id' => 'mdjm-events', 'parent' => 'mdjm', 'title' => mdjm_get_label_plural(), 'href' => admin_url('edit.php?post_type=mdjm-event'), 'meta' => array('title' => sprintf(__('MDJM %s', 'mobile-dj-manager'), mdjm_get_label_plural())))); } if (mdjm_employee_can('manage_all_events')) { $admin_bar->add_menu(array('id' => 'mdjm-add-events', 'parent' => 'mdjm-events', 'title' => sprintf(__('Create %s', 'mobile-dj-manager'), mdjm_get_label_singular()), 'href' => admin_url('post-new.php?post_type=mdjm-event'), 'meta' => array('title' => sprintf(__('Create New %s', 'mobile-dj-manager'), mdjm_get_label_singular())))); // Enquiries $event_status = array('mdjm-unattended' => __('Unattended Enquiries', 'mobile-dj-manager'), 'mdjm-enquiry' => __('View Enquiries', 'mobile-dj-manager')); foreach ($event_status as $current_status => $display) { $status_count = MDJM()->events->mdjm_count_event_status($current_status); if (!$status_count) { continue; } $admin_bar->add_menu(array('id' => 'mdjm-' . str_replace(' ', '-', strtolower($display)), 'parent' => 'mdjm-events', 'title' => $display . ' (' . $status_count . ')', 'href' => admin_url('edit.php?post_status=' . $current_status . '&post_type=mdjm-event'), 'meta' => array('title' => $display))); } // Event Types $admin_bar->add_menu(array('id' => 'mdjm-event-types', 'parent' => 'mdjm-events', 'title' => sprintf(__('%s Types', 'mobile-dj-manager'), mdjm_get_label_singular()), 'href' => admin_url('edit-tags.php?taxonomy=event-types&post_type=mdjm-event'), 'meta' => array('title' => sprintf(__('Manage %s Types', 'mobile-dj-manager'), mdjm_get_label_singular())))); // Playlist Categories $admin_bar->add_menu(array('id' => 'mdjm-playlist-cats', 'parent' => 'mdjm-events', 'title' => __('Playlist Categories', 'mobile-dj-manager'), 'href' => admin_url('edit-tags.php?taxonomy=playlist-category&post_type=mdjm-playlist'), 'meta' => array('title' => __('Manage Playlist Categories', 'mobile-dj-manager')))); // Enquiry Sources $admin_bar->add_menu(array('id' => 'mdjm-enquiry-sources', 'parent' => 'mdjm-events', 'title' => __('Enquiry Sources', 'mobile-dj-manager'), 'href' => admin_url('edit-tags.php?taxonomy=enquiry-source&post_type=mdjm-event'), 'meta' => array('title' => __('Manage Enquiry Sources', 'mobile-dj-manager')))); } // Dashboard /*$admin_bar->add_menu( array( 'id' => 'mdjm-dashboard', 'parent' => 'mdjm', 'title' => __( 'Dashboard', 'mobile-dj-manager' ), 'href' => admin_url( 'admin.php?page=mdjm-dashboard' ), 'meta' => array( 'title' => __( 'MDJM Dashboard', 'mobile-dj-manager' ), ), ) ); */ // Settings if (mdjm_is_admin()) { $admin_bar->add_menu(array('id' => 'mdjm-settings', 'parent' => 'mdjm', 'title' => __('Settings', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-settings'), 'meta' => array('title' => __('MDJM Settings', 'mobile-dj-manager')))); $admin_bar->add_menu(array('id' => 'mdjm-settings-general', 'parent' => 'mdjm-settings', 'title' => __('General', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-settings&tab=general'), 'meta' => array('title' => __('MDJM General Settings', 'mobile-dj-manager')))); $admin_bar->add_menu(array('id' => 'mdjm-settings-events', 'parent' => 'mdjm-settings', 'title' => mdjm_get_label_plural(), 'href' => admin_url('admin.php?page=mdjm-settings&tab=events'), 'meta' => array('title' => __('MDJM Event Settings', 'mobile-dj-manager')))); $admin_bar->add_menu(array('id' => 'mdjm-settings-permissions', 'parent' => 'mdjm-settings', 'title' => __('Permissions', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-settings&tab=general§ion=mdjm_app_permissions'), 'meta' => array('title' => __('MDJM Permission Settings', 'mobile-dj-manager')))); $admin_bar->add_menu(array('id' => 'mdjm-settings-emails', 'parent' => 'mdjm-settings', 'title' => sprintf(__('Email %s Template Settings', 'mobile-dj-manager'), '&'), 'href' => admin_url('admin.php?page=mdjm-settings&tab=emails'), 'meta' => array('title' => sprintf(__('MDJM Email %s Template Settings', 'mobile-dj-manager'), '&')))); $admin_bar->add_menu(array('id' => 'mdjm-settings-client-zone', 'parent' => 'mdjm-settings', 'title' => sprintf(__('%s Settings', 'mobile-dj-manager'), mdjm_get_option('app_name', __('Client Zone', 'mobile-dj-manager'))), 'href' => admin_url('admin.php?page=mdjm-settings&tab=client_zone'), 'meta' => array('title' => sprintf(__('%s Settings', 'mobile-dj-manager'), mdjm_get_option('app_name', __('Client Zone', 'mobile-dj-manager')))))); $admin_bar->add_menu(array('id' => 'mdjm-settings-payments', 'parent' => 'mdjm-settings', 'title' => __('Payment Settings', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-settings&tab=payments'), 'meta' => array('title' => __('MDJM Payment Settings', 'mobile-dj-manager')))); } do_action('mdjm_admin_bar_settings_items', $admin_bar); if (mdjm_is_employer() && mdjm_employee_can('manage_employees')) { // Employees $admin_bar->add_menu(array('id' => 'mdjm-employees', 'parent' => 'mdjm', 'title' => __('Employees', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-employees'), 'meta' => array('title' => __('Employees', 'mobile-dj-manager')))); } if (mdjm_is_admin()) { // Employee Availability $admin_bar->add_menu(array('id' => 'mdjm-availability', 'parent' => mdjm_is_employer() ? 'mdjm-employees' : 'mdjm', 'title' => __('Employee Availability', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-availability'), 'meta' => array('title' => __('Employee Availability', 'mobile-dj-manager')))); // Automated Tasks $admin_bar->add_menu(array('id' => 'mdjm-tasks', 'parent' => 'mdjm', 'title' => __('Automated Tasks', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-tasks'), 'meta' => array('title' => __('Automated Tasks', 'mobile-dj-manager')))); } if (mdjm_employee_can('view_clients_list')) { // Clients $admin_bar->add_menu(array('id' => 'mdjm-clients', 'parent' => 'mdjm', 'title' => __('Clients', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-clients'), 'meta' => array('title' => __('Clients', 'mobile-dj-manager')))); } if (mdjm_employee_can('list_all_clients')) { $admin_bar->add_menu(array('id' => 'mdjm-add-client', 'parent' => 'mdjm-clients', 'title' => __('Add Client', 'mobile-dj-manager'), 'href' => admin_url('user-new.php'), 'meta' => array('title' => __('Add New Client', 'mobile-dj-manager')))); $admin_bar->add_menu(array('id' => 'mdjm-custom-client-fields', 'parent' => 'mdjm-clients', 'title' => __('Custom Client Fields', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-custom-client-fields'), 'meta' => array('title' => __('Custom Client Field', 'mobile-dj-manager')))); } // Communications if (mdjm_employee_can('send_comms')) { $admin_bar->add_menu(array('id' => 'mdjm-comms', 'parent' => 'mdjm', 'title' => __('Communications', 'mobile-dj-manager'), 'href' => admin_url('admin.php?page=mdjm-comms'), 'meta' => array('title' => __('Communications', 'mobile-dj-manager')))); $admin_bar->add_menu(array('id' => 'edit.php?post_type=mdjm_communication', 'parent' => 'mdjm-comms', 'title' => __('Communication History', 'mobile-dj-manager'), 'href' => admin_url('edit.php?post_type=mdjm_communication'), 'meta' => array('title' => __('Communication History', 'mobile-dj-manager')))); } // Filter for MDJM DCF Admin Bar Items do_action('mdjm_dcf_admin_bar_items', $admin_bar); if (mdjm_employee_can('manage_templates')) { // Contract Templates $admin_bar->add_menu(array('id' => 'mdjm-contracts', 'parent' => 'mdjm', 'title' => __('Contract Templates', 'mobile-dj-manager'), 'href' => admin_url('edit.php?post_type=contract'), 'meta' => array('title' => __('Contract Templates', 'mobile-dj-manager')))); $admin_bar->add_menu(array('id' => 'mdjm-new-contract', 'parent' => 'mdjm-contracts', 'title' => __('Add Contract Template', 'mobile-dj-manager'), 'href' => admin_url('post-new.php?post_type=contract'), 'meta' => array('title' => __('New Contract Template', 'mobile-dj-manager')))); } if (mdjm_employee_can('manage_templates')) { // Email Templates $admin_bar->add_menu(array('id' => 'mdjm-email-templates', 'parent' => 'mdjm', 'title' => __('Email Templates', 'mobile-dj-manager'), 'href' => admin_url('edit.php?post_type=email_template'), 'meta' => array('title' => __('Email Templates', 'mobile-dj-manager')))); $admin_bar->add_menu(array('id' => 'mdjm-new-email-template', 'parent' => 'mdjm-email-templates', 'title' => __('Add Template', 'mobile-dj-manager'), 'href' => admin_url('post-new.php?post_type=email_template'), 'meta' => array('title' => __('New Email Template', 'mobile-dj-manager')))); } // Equipment Packages & Add-ons if (mdjm_packages_enabled() && mdjm_employee_can('manage_packages')) { $admin_bar->add_menu(array('id' => 'mdjm-packages', 'parent' => 'mdjm', 'title' => __('Packages', 'mobile-dj-manager'), 'href' => admin_url('edit.php?post_type=mdjm-package'), 'meta' => array('title' => __('Packages', 'mobile-dj-manager')))); $admin_bar->add_menu(array('id' => 'mdjm-package-cats', 'parent' => 'mdjm-packages', 'title' => __('Package Categories', 'mobile-dj-manager'), 'href' => admin_url('edit-tags.php?taxonomy=package-category&post_type=mdjm-package'), 'meta' => array('title' => __('Package Categories', 'mobile-dj-manager')))); $admin_bar->add_menu(array('id' => 'mdjm-addons', 'parent' => 'mdjm-packages', 'title' => __('Add-ons', 'mobile-dj-manager'), 'href' => admin_url('edit.php?post_type=mdjm-addon'), 'meta' => array('title' => __('Add-ons', 'mobile-dj-manager')))); $admin_bar->add_menu(array('id' => 'mdjm-addon-cats', 'parent' => 'mdjm-packages', 'title' => __('Addon Categories', 'mobile-dj-manager'), 'href' => admin_url('edit-tags.php?taxonomy=addon-category&post_type=mdjm-addon'), 'meta' => array('title' => __('Addon Categories', 'mobile-dj-manager')))); } // Custom Event Fields if (mdjm_is_admin()) { $admin_bar->add_menu(array('id' => 'mdjm-event-fields', 'parent' => 'mdjm-events', 'title' => sprintf(__('Custom %s Fields', 'mobile-dj-manager'), mdjm_get_label_singular()), 'href' => admin_url('admin.php?page=mdjm-custom-event-fields'), 'meta' => array('title' => sprintf(__('Manage Custom %s Fields', 'mobile-dj-manager'), mdjm_get_label_singular())))); } // Event Quotes if (mdjm_get_option('online_enquiry', false) && mdjm_employee_can('list_own_quotes')) { $admin_bar->add_menu(array('id' => 'mdjm-event-quotes', 'parent' => 'mdjm-events', 'title' => sprintf(__('%s Quotes', 'mobile-dj-manager'), mdjm_get_label_singular()), 'href' => admin_url('edit.php?post_type=mdjm-quotes'), 'meta' => array('title' => sprintf(__('View %s Quotes', 'mobile-dj-manager'), mdjm_get_label_singular())))); } // Reporting /*if( current_user_can( 'manage_options' ) ) { $admin_bar->add_menu( array( 'id' => 'mdjm-reports', 'parent' => 'mdjm', 'title' => __( 'Reports', 'mobile-dj-manager' ), 'href' => admin_url( 'admin.php?page=mdjm-reports' ), 'meta' => array( 'title' => __( 'MDJM Reports', 'mobile-dj-manager' ), ), ) ); }*/ if (mdjm_employee_can('edit_txns')) { // Transactions $admin_bar->add_menu(array('id' => 'mdjm-transactions', 'parent' => 'mdjm', 'title' => __('Transactions', 'mobile-dj-manager'), 'href' => 'edit.php?post_type=mdjm-transaction', 'meta' => array('title' => __('MDJM Transactions', 'mobile-dj-manager')))); $admin_bar->add_menu(array('id' => 'mdjm-add-transaction', 'parent' => 'mdjm-transactions', 'title' => __('Add Transaction', 'mobile-dj-manager'), 'href' => admin_url('post-new.php?post_type=mdjm-transaction'), 'meta' => array('title' => __('Add Transaction', 'mobile-dj-manager')))); // Transaction Types $admin_bar->add_menu(array('id' => 'mdjm-transaction-types', 'parent' => 'mdjm-transactions', 'title' => __('Transaction Types', 'mobile-dj-manager'), 'href' => admin_url('edit-tags.php?taxonomy=transaction-types&post_type=mdjm-transaction'), 'meta' => array('title' => __('View / Edit Transaction Types', 'mobile-dj-manager')))); } if (mdjm_employee_can('list_venues')) { // Venues $admin_bar->add_menu(array('id' => 'mdjm-venues', 'parent' => 'mdjm', 'title' => __('Venues', 'mobile-dj-manager'), 'href' => admin_url('edit.php?post_type=mdjm-venue'), 'meta' => array('title' => __('Venues', 'mobile-dj-manager')))); if (mdjm_employee_can('add_venues')) { $admin_bar->add_menu(array('id' => 'mdjm-add-venue', 'parent' => 'mdjm-venues', 'title' => __('Add Venue', 'mobile-dj-manager'), 'href' => admin_url('post-new.php?post_type=mdjm-venue'), 'meta' => array('title' => __('Add New Venue', 'mobile-dj-manager')))); $admin_bar->add_menu(array('id' => 'mdjm-venue-details', 'parent' => 'mdjm-venues', 'title' => __('Venue Details', 'mobile-dj-manager'), 'href' => admin_url('edit-tags.php?taxonomy=venue-details&post_type=mdjm-venue'), 'meta' => array('title' => __('View / Edit Venue Details', 'mobile-dj-manager')))); } } // MDJM Links $admin_bar->add_menu(array('id' => 'mdjm-user-guides', 'parent' => 'mdjm', 'title' => sprintf(__('%sDocumentation%s', 'mobile-dj-manager'), '<span style="color:#F90">', '</span>'), 'href' => 'http://mdjm.co.uk/support/', 'meta' => array('title' => __('Documentation', 'mobile-dj-manager'), 'target' => '_blank'))); $admin_bar->add_menu(array('id' => 'mdjm-support', 'parent' => 'mdjm', 'title' => sprintf(__('%sSupport%s', 'mobile-dj-manager'), '<span style="color:#F90">', '</span>'), 'href' => 'http://www.mydjplanner.co.uk/forums/', 'meta' => array('title' => __('MDJM Support Forums', 'mobile-dj-manager'), 'target' => '_blank'))); }
/** * Output the event employee selection row * * @since 1.3.7 * @global obj $mdjm_event MDJM_Event class object * @global bool $mdjm_event_update True if this event is being updated, false if new. * @param int $event_id The event ID. * @return str */ function mdjm_event_metabox_employee_select_row($event_id) { global $mdjm_event, $mdjm_event_update; $employee_id = $mdjm_event->employee_id ? $mdjm_event->employee_id : get_current_user_id(); $payment_status = $mdjm_event->employee_id ? mdjm_event_employees_paid($event_id, $mdjm_event->employee_id) : false; if (isset($_GET['primary_employee'])) { $employee_id = $_GET['primary_employee']; } echo MDJM()->html->hidden(array('name' => 'event_dj', 'value' => $employee_id)); ?> <div class="mdjm_field_wrap mdjm_form_fields"> <div class="mdjm_col col2"> <label for="_mdjm_event_dj"><?php _e('Primary Employee:', 'mobile-dj-manager'); ?> </label><br /> <?php if (!mdjm_is_employer() || !mdjm_employee_can('manage_employees') || $payment_status) { ?> <?php echo MDJM()->html->text(array('name' => 'event_dj_display', 'class' => '', 'value' => mdjm_get_employee_display_name($employee_id), 'readonly' => true)); ?> <?php echo MDJM()->html->hidden(array('name' => '_mdjm_event_dj', 'value' => $employee_id)); ?> <?php } else { ?> <?php echo MDJM()->html->employee_dropdown(array('selected' => $mdjm_event->employee_id, 'group' => true, 'chosen' => true, 'placeholder' => __('Select an Employee', 'mobile-dj-manager'))); ?> <?php } ?> </div> <?php if (mdjm_get_option('enable_employee_payments') && mdjm_employee_can('edit_txns')) { ?> <?php $wage = mdjm_get_employees_event_wage($event_id, $employee_id); ?> <div class="mdjm_col col2"> <label for="_mdjm_event_dj_wage"><?php _e('Wage', 'mobile-dj-manager'); ?> :</label><br /> <?php echo mdjm_currency_symbol() . MDJM()->html->text(array('name' => '_mdjm_event_dj_wage', 'class' => 'mdjm-currency', 'value' => !empty($wage) ? $wage : '', 'placeholder' => mdjm_sanitize_amount('0'), 'readonly' => $payment_status ? true : false)); ?> </div> <?php } ?> </div> <?php }
/** * Get system info * * @since 1.4 * @global obj $wpdb Used to query the database using the WordPress Database API * @return str $return A string containing the info to output */ function mdjm_tools_sysinfo_get() { global $wpdb; // Get theme info $theme_data = wp_get_theme(); $theme = $theme_data->Name . ' ' . $theme_data->Version; $return = '### Begin System Info ###' . "\n\n"; // Start with the basics... $return .= '-- Site Info' . "\n\n"; $return .= 'Site URL: ' . site_url() . "\n"; $return .= 'Home URL: ' . home_url() . "\n"; $return .= 'Multisite: ' . (is_multisite() ? 'Yes' : 'No') . "\n"; $return = apply_filters('mdjm_sysinfo_after_site_info', $return); // WordPress configuration $return .= "\n" . '-- WordPress Configuration' . "\n\n"; $return .= 'Version: ' . get_bloginfo('version') . "\n"; $return .= 'Language: ' . (defined('WPLANG') && WPLANG ? WPLANG : 'en_US') . "\n"; $return .= 'Permalink Structure: ' . (get_option('permalink_structure') ? get_option('permalink_structure') : 'Default') . "\n"; $return .= 'Active Theme: ' . $theme . "\n"; $return .= 'Show On Front: ' . get_option('show_on_front') . "\n"; // Only show page specs if frontpage is set to 'page' if (get_option('show_on_front') == 'page') { $front_page_id = get_option('page_on_front'); $blog_page_id = get_option('page_for_posts'); $return .= 'Page On Front: ' . ($front_page_id != 0 ? get_the_title($front_page_id) . ' (#' . $front_page_id . ')' : 'Unset') . "\n"; $return .= 'Page For Posts: ' . ($blog_page_id != 0 ? get_the_title($blog_page_id) . ' (#' . $blog_page_id . ')' : 'Unset') . "\n"; } $return .= 'ABSPATH: ' . ABSPATH . "\n"; // Make sure wp_remote_post() is working $request['cmd'] = '_notify-validate'; $params = array('sslverify' => false, 'timeout' => 60, 'user-agent' => 'MDJM/' . MDJM_VERSION_NUM, 'body' => $request); $response = wp_remote_post('https://www.paypal.com/cgi-bin/webscr', $params); if (!is_wp_error($response) && $response['response']['code'] >= 200 && $response['response']['code'] < 300) { $WP_REMOTE_POST = 'wp_remote_post() works'; } else { $WP_REMOTE_POST = 'wp_remote_post() does not work'; } $return .= 'Remote Post: ' . $WP_REMOTE_POST . "\n"; $return .= 'Table Prefix: ' . 'Length: ' . strlen($wpdb->prefix) . ' Status: ' . (strlen($wpdb->prefix) > 16 ? 'ERROR: Too long' : 'Acceptable') . "\n"; $return .= 'WP_DEBUG: ' . (defined('WP_DEBUG') ? WP_DEBUG ? 'Enabled' : 'Disabled' : 'Not set') . "\n"; $return .= 'Memory Limit: ' . WP_MEMORY_LIMIT . "\n"; $return .= 'Registered Post Stati: ' . implode(', ', get_post_stati()) . "\n"; $return = apply_filters('mdjm_sysinfo_after_wordpress_config', $return); // MDJM configuration $employer = mdjm_is_employer(); $packages = mdjm_packages_enabled(); $debug = MDJM_DEBUG; $return .= "\n" . '-- MDJM Configuration' . "\n\n"; $return .= 'Version: ' . MDJM_VERSION_NUM . "\n"; $return .= 'Upgraded From: ' . get_option('mdjm_version_upgraded_from', 'None') . "\n"; $return .= 'Debugging Status: ' . (!empty($debug) ? "Enabled\n" : "Disabled\n"); $return .= 'Multiple Employees: ' . (!empty($employer) ? "Enabled\n" : "Disabled\n"); $return .= 'Packages Enabled: ' . (!empty($packages) ? "Enabled\n" : "Disabled\n"); $return .= 'Currency Code: ' . mdjm_get_currency() . "\n"; $return .= 'Currency Position: ' . mdjm_get_option('currency_format', 'before') . "\n"; $return .= 'Decimal Separator: ' . mdjm_get_option('decimal', '.') . "\n"; $return .= 'Thousands Separator: ' . mdjm_get_option('thousands_separator', ',') . "\n"; $return = apply_filters('mdjm_sysinfo_after_mdjm_config', $return); // MDJM pages $clientzone_page = mdjm_get_option('app_home_page', ''); $contact_page = mdjm_get_option('contact_page', ''); $contracts_page = mdjm_get_option('contracts_page', ''); $payments_page = mdjm_get_option('payments_page', ''); $playlist_page = mdjm_get_option('playlist_page', ''); $profile_page = mdjm_get_option('profile_page', ''); $quotes_page = mdjm_get_option('quotes_page', ''); $return .= "\n" . '-- MDJM Page Configuration' . "\n\n"; $return .= 'Client Zone Page: ' . (!empty($clientzone_page) ? get_permalink($clientzone_page) . "\n" : "Unset\n"); $return .= 'Contact Page: ' . (!empty($contact_page) ? get_permalink($contact_page) . "\n" : "Unset\n"); $return .= 'Contracts Page: ' . (!empty($contracts_page) ? get_permalink($contracts_page) . "\n" : "Unset\n"); $return .= 'Payments Page: ' . (!empty($payments_page) ? get_permalink($payments_page) . "\n" : "Unset\n"); $return .= 'Playlist Page: ' . (!empty($playlist_page) ? get_permalink($playlist_page) . "\n" : "Unset\n"); $return .= 'Profile Page: ' . (!empty($profile_page) ? get_permalink($profile_page) . "\n" : "Unset\n"); $return .= 'Quotes Page: ' . (!empty($quotes_page) ? get_permalink($quotes_page) . "\n" : "Unset\n"); $return = apply_filters('mdjm_sysinfo_after_mdjm_pages', $return); // MDJM email templates $quote_template = mdjm_get_option('enquiry', ''); $online_quote = mdjm_get_option('online_enquiry', ''); $unavailable_template = mdjm_get_option('unavailable', ''); $contract_template = mdjm_get_option('contract', ''); $booking_conf_template = mdjm_get_option('booking_conf_client', ''); $auto_payment_template = mdjm_get_option('payment_cfm_template', ''); $manual_payment_template = mdjm_get_option('manual_payment_cfm_template', ''); $return .= "\n" . '-- MDJM Email Templates' . "\n\n"; $return .= 'Quote: ' . (!empty($quote_template) ? get_the_title($quote_template) . ' (' . $quote_template . ')' . "\n" : "Unset\n"); $return .= 'Online Quote: ' . (!empty($online_quote) ? get_the_title($online_quote) . ' (' . $online_quote . ')' . "\n" : "Unset\n"); $return .= 'Unavailable: ' . (!empty($unavailable_template) ? get_the_title($unavailable_template) . ' (' . $unavailable_template . ')' . "\n" : "Unset\n"); $return .= 'Awaiting Contract: ' . (!empty($contract_template) ? get_the_title($quote_template) . ' (' . $quote_template . ')' . "\n" : "Unset\n"); $return .= 'Booking Confirmation: ' . (!empty($booking_conf_template) ? get_the_title($booking_conf_template) . ' (' . $booking_conf_template . ')' . "\n" : "Unset\n"); $return .= 'Gateway Payment: ' . (!empty($auto_payment_template) ? get_the_title($auto_payment_template) . ' (' . $auto_payment_template . ')' . "\n" : "Unset\n"); $return .= 'Manual Payment: ' . (!empty($manual_payment_template) ? get_the_title($manual_payment_template) . ' (' . $manual_payment_template . ')' . "\n" : "Unset\n"); $return = apply_filters('mdjm_sysinfo_after_mdjm_pages', $return); // MDJM Payment Gateways $return .= "\n" . '-- MDJM Gateway Configuration' . "\n\n"; $active_gateways = mdjm_get_enabled_payment_gateways(); if ($active_gateways) { $default_gateway_is_active = mdjm_is_gateway_active(mdjm_get_default_gateway()); if ($default_gateway_is_active) { $default_gateway = mdjm_get_default_gateway(); $default_gateway = $active_gateways[$default_gateway]['admin_label']; } else { $default_gateway = 'Test Payment'; } $gateways = array(); foreach ($active_gateways as $gateway) { $gateways[] = $gateway['admin_label']; } $return .= 'Enabled Gateways: ' . implode(', ', $gateways) . "\n"; $return .= 'Default Gateway: ' . $default_gateway . "\n"; } else { $return .= 'Enabled Gateways: None' . "\n"; } $return = apply_filters('mdjm_sysinfo_after_mdjm_gateways', $return); // MDJM Templates $dir = get_stylesheet_directory() . '/mdjm-templates/*'; if (is_dir($dir) && count(glob("{$dir}/*")) !== 0) { $return .= "\n" . '-- MDJM Template Overrides' . "\n\n"; foreach (glob($dir) as $file) { $return .= 'Filename: ' . basename($file) . "\n"; } $return = apply_filters('mdjm_sysinfo_after_mdjm_templates', $return); } // Get plugins that have an update $updates = get_plugin_updates(); // Must-use plugins // NOTE: MU plugins can't show updates! $muplugins = get_mu_plugins(); if (count($muplugins > 0)) { $return .= "\n" . '-- Must-Use Plugins' . "\n\n"; foreach ($muplugins as $plugin => $plugin_data) { $return .= $plugin_data['Name'] . ': ' . $plugin_data['Version'] . "\n"; } $return = apply_filters('mdjm_sysinfo_after_wordpress_mu_plugins', $return); } // WordPress active plugins $return .= "\n" . '-- WordPress Active Plugins' . "\n\n"; $plugins = get_plugins(); $active_plugins = get_option('active_plugins', array()); foreach ($plugins as $plugin_path => $plugin) { if (!in_array($plugin_path, $active_plugins)) { continue; } $update = array_key_exists($plugin_path, $updates) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : ''; $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n"; } $return = apply_filters('mdjm_sysinfo_after_wordpress_plugins', $return); // WordPress inactive plugins $return .= "\n" . '-- WordPress Inactive Plugins' . "\n\n"; foreach ($plugins as $plugin_path => $plugin) { if (in_array($plugin_path, $active_plugins)) { continue; } $update = array_key_exists($plugin_path, $updates) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : ''; $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n"; } $return = apply_filters('mdjm_sysinfo_after_wordpress_plugins_inactive', $return); if (is_multisite()) { // WordPress Multisite active plugins $return .= "\n" . '-- Network Active Plugins' . "\n\n"; $plugins = wp_get_active_network_plugins(); $active_plugins = get_site_option('active_sitewide_plugins', array()); foreach ($plugins as $plugin_path) { $plugin_base = plugin_basename($plugin_path); if (!array_key_exists($plugin_base, $active_plugins)) { continue; } $update = array_key_exists($plugin_path, $updates) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : ''; $plugin = get_plugin_data($plugin_path); $return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n"; } $return = apply_filters('mdjm_sysinfo_after_wordpress_ms_plugins', $return); } // Server configuration (really just versioning) $return .= "\n" . '-- Webserver Configuration' . "\n\n"; $return .= 'PHP Version: ' . PHP_VERSION . "\n"; $return .= 'MySQL Version: ' . $wpdb->db_version() . "\n"; $return .= 'Webserver Info: ' . $_SERVER['SERVER_SOFTWARE'] . "\n"; $return = apply_filters('mdjm_sysinfo_after_webserver_config', $return); // PHP configs... now we're getting to the important stuff $return .= "\n" . '-- PHP Configuration' . "\n\n"; $return .= 'Safe Mode: ' . (ini_get('safe_mode') ? 'Enabled' : 'Disabled' . "\n"); $return .= 'Memory Limit: ' . ini_get('memory_limit') . "\n"; $return .= 'Upload Max Size: ' . ini_get('upload_max_filesize') . "\n"; $return .= 'Post Max Size: ' . ini_get('post_max_size') . "\n"; $return .= 'Upload Max Filesize: ' . ini_get('upload_max_filesize') . "\n"; $return .= 'Time Limit: ' . ini_get('max_execution_time') . "\n"; $return .= 'Max Input Vars: ' . ini_get('max_input_vars') . "\n"; $return .= 'Display Errors: ' . (ini_get('display_errors') ? 'On (' . ini_get('display_errors') . ')' : 'N/A') . "\n"; $return = apply_filters('mdjm_sysinfo_after_php_config', $return); // PHP extensions and such $return .= "\n" . '-- PHP Extensions' . "\n\n"; $return .= 'cURL: ' . (function_exists('curl_init') ? 'Supported' : 'Not Supported') . "\n"; $return .= 'fsockopen: ' . (function_exists('fsockopen') ? 'Supported' : 'Not Supported') . "\n"; $return .= 'SOAP Client: ' . (class_exists('SoapClient') ? 'Installed' : 'Not Installed') . "\n"; $return .= 'Suhosin: ' . (extension_loaded('suhosin') ? 'Installed' : 'Not Installed') . "\n"; $return = apply_filters('mdjm_sysinfo_after_php_ext', $return); $return .= "\n" . '### End System Info ###'; return $return; }
/** * Output the addon availability employee_row * * @since 1.4 * @param int $post The WP_Post object. * @return str */ function mdjm_addon_metabox_availability_employee_row($post) { $employees_with = mdjm_get_employees_with_addon($post->ID); $event_types = mdjm_get_addon_event_types($post->ID); $event_label = mdjm_get_label_singular(true); ?> <div class="mdjm_field_wrap mdjm_form_fields"> <?php if (mdjm_is_employer()) { ?> <div id="addon-employee-select" class="mdjm_col col2"> <p><label for="_addon_employees"><?php _e('Employees with this package', 'mobile-dj-manager'); ?> </label><br /> <?php echo MDJM()->html->employee_dropdown(array('name' => '_addon_employees', 'selected' => !empty($employees_with) ? $employees_with : array('all'), 'show_option_none' => false, 'show_option_all' => __('All Employees', 'mobile-dj-manager'), 'group' => true, 'chosen' => true, 'multiple' => true, 'placeholder' => __('Click to select employees', 'mobile-dj-manager'))); ?> </p> </div> <?php } else { ?> <input type="hidden" name="_package_employees" value="all" /> <?php } ?> <div id="addon-event-type" class="mdjm_col col2"> <p><label for="_addon_event_types"><?php printf(__('Available for %s types', 'mobile-dj-manager'), $event_label); ?> </label><br /> <?php echo MDJM()->html->event_type_dropdown(array('name' => '_addon_event_types', 'selected' => !empty($event_types) ? $event_types : array('all'), 'show_option_none' => false, 'show_option_all' => sprintf(__('All %s Types', 'mobile-dj-manager'), ucfirst($event_label)), 'multiple' => true, 'chosen' => true, 'placeholder' => sprintf(__('Click to select %s types', 'mobile-dj-manager'), $event_label))); ?> </p> </div> </div> <?php }
/** * Add the filter dropdowns to the event post list. * * @since 1.0 * @param * @return void */ function mdjm_event_post_filter_list() { if (!isset($_GET['post_type']) || $_GET['post_type'] != 'mdjm-event') { return; } mdjm_event_date_filter_dropdown(); mdjm_event_type_filter_dropdown(); if (mdjm_is_employer() && mdjm_employee_can('manage_employees')) { mdjm_event_employee_filter_dropdown(); } if (mdjm_employee_can('list_all_clients')) { mdjm_event_client_filter_dropdown(); } }