/** * Define the columns to be displayed for communication posts * * @since 0.5 * @param arr $columns Array of column names * @return arr $columns Filtered array of column names */ function mdjm_communication_post_columns($columns) { $columns = array('cb' => '<input type="checkbox" />', 'date_sent' => __('Date Sent', 'mobile-dj-manager'), 'title' => __('Email Subject', 'mobile-dj-manager'), 'from' => __('From', 'mobile-dj-manager'), 'recipient' => __('Recipient', 'mobile-dj-manager'), 'event' => sprintf(__('%s', 'mobile-dj-manager'), mdjm_get_label_singular()), 'current_status' => __('Status', 'mobile-dj-manager'), 'source' => __('Source', 'mobile-dj-manager')); if (!mdjm_is_admin() && isset($columns['cb'])) { unset($columns['cb']); } return $columns; }
/** * Deactivate the license key * * @access public * @return void */ public function deactivate_license() { if (!isset($_POST['mdjm_settings'])) { return; } if (!isset($_POST['mdjm_settings'][$this->item_shortname . '_license_key'])) { return; } if (!wp_verify_nonce($_REQUEST[$this->item_shortname . '_license_key-nonce'], $this->item_shortname . '_license_key-nonce')) { wp_die(__('Nonce verification failed', 'mobile-dj-manager'), __('Error', 'mobile-dj-manager'), array('response' => 403)); } if (!mdjm_is_admin()) { return; } // Run on deactivate button press if (isset($_POST[$this->item_shortname . '_license_key_deactivate'])) { // Data to send to the API $api_params = array('edd_action' => 'deactivate_license', 'license' => $this->license, 'item_name' => urlencode($this->item_name), 'url' => home_url()); // Call the API $response = wp_remote_post($this->api_url, array('timeout' => 15, 'sslverify' => false, 'body' => $api_params)); // Make sure there are no errors if (is_wp_error($response)) { return; } // Decode the license data $license_data = json_decode(wp_remote_retrieve_body($response)); delete_option($this->item_shortname . '_license_active'); if (!(bool) $license_data->success) { set_transient('mdjm_license_error', $license_data, 1000); } else { delete_transient('mdjm_license_error'); } } }
/** * Determine if the currently logged in employee user has the relevant permissions to perform the action/view the page * * @since 1.3 * @param str $action Required: The action being performed * @param int $user_id Optional: The ID of the user to query. Default current user * @return bool $granted true|false */ public function employee_can($action, $user_id = '') { if (empty($user_id)) { $user = wp_get_current_user(); } else { $user = get_user_by('id', $user_id); } // MDJM Admins can do everything if (mdjm_is_admin($user->ID)) { return true; } // Non employees can't do anything if (!mdjm_is_employee($user->ID)) { return false; } switch ($action) { case 'view_clients_list': $allowed_roles = array('mdjm_client_edit', 'mdjm_client_edit_own'); break; case 'list_all_clients': $allowed_roles = array('mdjm_client_edit'); break; case 'manage_employees': $allowed_roles = array('mdjm_employee_edit'); break; case 'read_events': $allowed_roles = array('mdjm_event_read', 'mdjm_event_read_own', 'mdjm_event_edit', 'mdjm_event_edit_own'); break; case 'read_events_all': $allowed_roles = array('mdjm_event_read', 'mdjm_event_edit'); break; case 'manage_events': $allowed_roles = array('mdjm_event_edit', 'mdjm_event_edit_own'); break; case 'manage_all_events': $allowed_roles = array('mdjm_event_edit'); break; case 'manage_packages': $allowed_roles = array('mdjm_package_edit', 'mdjm_package_edit_own'); break; case 'manage_templates': $allowed_roles = array('mdjm_template_edit'); break; case 'edit_txns': $allowed_roles = array('mdjm_txn_edit'); break; case 'list_all_quotes': $allowed_roles = array('mdjm_quote_view'); break; case 'list_own_quotes': $allowed_roles = array('mdjm_quote_view_own', 'mdjm_quote_view'); break; case 'list_venues': $allowed_roles = array('mdjm_venue_read', 'mdjm_venue_edit'); break; case 'add_venues': $allowed_roles = array('mdjm_venue_edit'); break; case 'send_comms': $allowed_roles = array('mdjm_comms_send'); break; case 'run_reports': $allowed_roles = array('view_event_reports'); default: return false; break; } // switch if (empty($allowed_roles)) { return false; } foreach ($allowed_roles as $allowed) { if (user_can($user->ID, $allowed)) { return true; } } return false; }
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 admin notes 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_admin_notes_row($event_id) { global $mdjm_event, $mdjm_event_update; if (!mdjm_is_admin()) { return; } ?> <div class="mdjm_field_wrap mdjm_form_fields"> <?php echo MDJM()->html->textarea(array('label' => __('Admin Notes:', 'mobile-dj-manager'), 'name' => '_mdjm_event_admin_notes', 'placeholder' => __('This information is only visible to admins', 'mobile-dj-manager'), 'value' => get_post_meta($event_id, '_mdjm_event_admin_notes', true))); ?> </div> <?php }
/** * Displays the signed contract for review. * * @since 1.3.6 * @param int $event_id The event ID. * @return void */ function mdjm_review_signed_contract() { if (empty($_GET['mdjm_action'])) { return; } if ('review_contract' !== $_GET['mdjm_action']) { return; } if (!mdjm_employee_can('manage_events')) { return; } $mdjm_event = new MDJM_Event($_GET['event_id']); if (!mdjm_is_admin()) { if (!array_key_exists(get_current_user_id(), $mdjm_event->get_all_employees())) { return; } } if (!$mdjm_event->get_contract_status()) { printf(__('The contract for this %s is not signed', 'mobile-dj-manager'), mdjm_get_label_singular()); exit; } $contract_id = $mdjm_event->get_contract(); if (empty($contract_id)) { return; } echo mdjm_show_contract($contract_id, $mdjm_event); exit; }
/** * Save the MDJM Custom User Fields * * @since 1.0 * @param int $user_id The ID of the user * @return void */ public function save_custom_user_fields($user_id) { do_action('mdjm_pre_save_custom_user_fields', $user_id, $_POST); $custom_fields = get_option('mdjm_client_fields'); $default_fields = get_user_by('id', $user_id); if (!current_user_can('edit_user', $user_id)) { return; } // For administrators, determine if they should be an employee if (user_can($user_id, 'administrator') && mdjm_is_admin()) { if (!empty($_POST['_mdjm_event_roles'])) { update_user_meta($user_id, '_mdjm_event_staff', true); update_user_meta($user_id, '_mdjm_event_roles', $_POST['_mdjm_event_roles']); } else { update_user_meta($user_id, '_mdjm_event_staff', false); update_user_meta($user_id, '_mdjm_event_roles', false); } if (!empty($_POST['_mdjm_event_admin'])) { update_user_meta($user_id, '_mdjm_event_admin', true); } else { update_user_meta($user_id, '_mdjm_event_admin', false); } } // Loop through the fields and update if (!empty($custom_fields)) { foreach ($custom_fields as $custom_field) { $field = $custom_field['id']; // Checkbox unchecked = N if ($custom_field['type'] == 'checkbox' && empty($_POST[$field])) { $_POST[$field] = 'N'; } // Update the users meta data if (!empty($_POST[$field])) { update_user_meta($user_id, $field, $_POST[$field]); } else { delete_user_meta($user_id, $field); } /** * For new users, remove the admin bar * and set the action to created */ if (isset($_POST['action']) && $_POST['action'] == 'createuser') { update_user_option($user_id, 'show_admin_bar_front', false); if (!empty($default_fields->first_name) && !empty($default_fields->last_name)) { update_user_option($user_id, 'display_name', $default_fields->first_name . ' ' . $default_fields->last_name); } $client_action = 'created'; } else { $client_action = 'updated'; } } } do_action('mdjm_post_save_custom_user_fields', $user_id, $_POST); }
<?php /** * * * * * * * * * * * * * * * MDJM * * * * * * * * * * * * * * * * comms.php * * Enables Admins & DJ's to communication with their clients * * @since 1.0 * */ defined('ABSPATH') or die("Direct access to this page is disabled!!!"); if (!mdjm_is_admin()) { wp_die(__('You do not have sufficient permissions to access this page.')); } global $mdjm, $mdjm_settings, $current_user; if (isset($_POST['submit'])) { /* Validation */ if (is_dj() && isset($mdjm_settings['permissions']['dj_disable_shortcode']) && !empty($mdjm_settings['permissions']['dj_disable_shortcode'])) { // Check shortcodes that DJ's cannot use if (!is_array($mdjm_settings['permissions']['dj_disable_shortcode'])) { $mdjm_settings['permissions']['dj_disable_shortcode'] = array($mdjm_settings['permissions']['dj_disable_shortcode']); } foreach ($mdjm_settings['permissions']['dj_disable_shortcode'] as $disabled_shortcode) { if (strpos($_POST['email_content'], $disabled_shortcode) !== false) { $disabled_shortcodes = $disabled_shortcodes . ' ' . $disabled_shortcode; } } } if (isset($disabled_shortcodes)) { $class = 'error';
/** * Create the HTML output for the name column * * @param obj $item The object array for the current item * * @return str The HTML output for the checkbox column */ public function column_name($item) { if (current_user_can('edit_users') || $item->ID == get_current_user_id()) { $edit_users = true; } if (!empty($edit_users)) { echo '<a href="' . get_edit_user_link($item->ID) . '">'; } echo $item->display_name; if (!empty($edit_users)) { echo '</a>'; } if (mdjm_is_admin($item->ID)) { echo '<br />' . __('<em>MDJM Admin</em>', 'mobile-dj-manager'); } if (user_can($item->ID, 'administrator')) { echo '<br />' . __('<em>WordPress Admin</em>', 'mobile-dj-manager'); } }
function get_availability_activity($month, $year) { global $wpdb, $mdjm, $mdjm_settings, $current_user; if ($month == '12') { $next_month = '1'; $mk_year = $year + 1; } else { $next_month = $month + 1; $mk_year = $year; } if (date('Y-m', strtotime($year . '-' . $month)) == date('Y-m')) { $first_day = date('Y-m-d'); $last_day = date('Y-m-d', strtotime('+1 month')); } else { $first_day = date('Y-m-d', strtotime($year . '-' . $month . '-01')); $last_day = date('Y-m-t', mktime(0, 0, 0, $next_month, 0, $mk_year)); } /* 7 Day Checker for the WP Widget */ if ($month == 0 && $year == 0) { $first_day = date('Y-m-d'); $last_day = date('Y-m-d', strtotime('+1 week')); } $date_range = mdjm_all_dates_in_range($first_day, $last_day); $event_args = array('posts_per_page' => -1, 'post_type' => 'mdjm-event', 'post_status' => array('mdjm-unattended', 'mdjm-enquiry', 'mdjm-contract', 'mdjm-approved', 'mdjm-completed'), 'orderby' => 'meta_value', 'order' => 'ASC'); /* Loop through the days */ foreach ($date_range as $day) { if (mdjm_is_admin()) { $event_args['meta_query'] = array(array('key' => '_mdjm_event_date', 'value' => $day->format('Y-m-d'), 'compare' => '=', 'type' => 'date')); $hol_query = "SELECT * FROM " . MDJM_HOLIDAY_TABLE . " WHERE DATE(date_from) = '" . $day->format('Y-m-d') . "'"; } else { $event_args['meta_query'] = array('relation' => 'AND', array('key' => '_mdjm_event_date', 'value' => $day->format('Y-m-d'), 'compare' => '=', 'type' => 'date'), array('key' => '_mdjm_event_dj', 'value' => $current_user->ID, 'compare' => '=')); $hol_query = "SELECT * FROM " . MDJM_HOLIDAY_TABLE . " WHERE DATE(date_from) = '" . $day->format('Y-m-d') . "' AND `user_id` = '" . get_current_user_id() . "'"; } /* Work Query */ $work_result = get_posts($event_args); /* Holiday Query */ $hol_result = $wpdb->get_results($hol_query); /* Print results */ $result_array = array(); if (count($work_result) > 0 || $hol_result) { $event_stati = mdjm_all_event_status(); $have_result = true; ?> <tr class="alternate"> <td colspan="2"><strong><font class="code"><?php echo date('l, jS F Y', strtotime($day->format('Y-m-d'))); ?> </font></strong></td> </tr> <?php } if (count($work_result) > 0) { foreach ($work_result as $event) { $eventinfo = MDJM()->events->event_detail($event->ID); ?> <tr> <td width="25%"> <?php if ($month == 0 && $year == 0) { echo '<font style="font-size:12px">'; } ?> <strong><?php echo !empty($eventinfo['dj']->display_name) ? $eventinfo['dj']->display_name : 'DJ ' . $eventinfo['dj']; ?> </strong> <?php if ($month == 0 && $year == 0) { echo '</font>'; } ?> </td> <td><?php if ($month == 0 && $year == 0) { echo '<font style="font-size:12px">'; } ?> <a href="<?php echo get_edit_post_link($event->ID); ?> ">Event ID <?php echo $event->ID . '</a> (' . $event_stati[$event->post_status] . ')'; ?> from <?php echo $eventinfo['start']; if ($month != 0 && $year != 0) { ?> to <?php echo $eventinfo['finish']; } if ($month == 0 && $year == 0) { echo '</font>'; } ?> </td> </tr> <?php } } if ($hol_result) { foreach ($hol_result as $holiday) { $dj = get_userdata($holiday->user_id); ?> <tr> <td width="25%"><?php if ($month == 0 && $year == 0) { echo '<font style="font-size:12px">'; } ?> <strong><?php echo $dj->display_name; ?> </strong><?php if ($month == 0 && $year == 0) { echo '</font>'; } ?> </td> <td><?php if ($month == 0 && $year == 0) { echo '<font style="font-size:12px">'; } ?> Unavailable<?php if (isset($holiday->notes) && !empty($holiday->notes) && $month != 0 && $year != 0) { echo ' - ' . $holiday->notes; } if ($month == 0 && $year == 0) { echo '</font>'; } ?> <a style="color: #F00;" href="<?php mdjm_get_admin_page('availability', 'echo'); ?> &action=del_entry&entry_id=<?php echo $holiday->entry_id; ?> ">Delete Entry</a></td> </tr> <?php } } } // foreach( $date_range as $day ) if (!isset($have_result)) { if ($month != 0 && $year != 0) { ?> <tr class="alternate"> <td colspan="2"><strong>There is currently no activity during <?php echo date('F Y', strtotime($year . '-' . $month . '-01')); ?> </strong></td> </tr> <?php } else { ?> <tr > <td colspan="2">There is currently no activity within the next 7 days</td> </tr> <?php } } }