Ejemplo n.º 1
0
/**
 * 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;
 }
Ejemplo n.º 4
0
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&section=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'), '&amp;'), 'href' => admin_url('admin.php?page=mdjm-settings&tab=emails'), 'meta' => array('title' => sprintf(__('MDJM Email %s Template Settings', 'mobile-dj-manager'), '&amp;'))));
        $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')));
}
Ejemplo n.º 5
0
/**
 * 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 
}
Ejemplo n.º 6
0
/**
 * 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;
}
Ejemplo n.º 7
0
 /**
  * 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);
 }
Ejemplo n.º 8
0
<?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');
     }
 }
Ejemplo n.º 10
0
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 
        }
    }
}