示例#1
0
 /**
  * Retrieve a client.
  *
  * @since	1.4
  * @return	void
  */
 public function get_client()
 {
     $response = array();
     if (!isset($this->request['client_id']) && !isset($this->request['client_email'])) {
         $this->missing_params('client_id or client_email');
     }
     do_action('mdjm_before_api_get_client', $this);
     if (isset($this->request['client_email']) && !isset($this->request['client_id'])) {
         $field = 'email';
         $value = $this->request['client_email'];
     } else {
         $field = 'id';
         $value = $this->request['client_id'];
     }
     $client = get_user_by($field, $value);
     if (!user_can($client->ID, 'client') && !user_can($client->ID, 'inactive_client')) {
         $response['error'] = __('Error retrieving client.', 'mobile-dj-manager');
         $this->data = array_merge($response, $this->data);
         $this->output();
     }
     if (!$client) {
         $response['error'] = __('Client could not be found.', 'mobile-dj-manager');
         $this->data = array_merge($response, $this->data);
         $this->output();
     }
     $events = array();
     $client_events = mdjm_get_client_events($client->ID);
     $next_event = mdjm_get_clients_next_event($client->ID);
     if ($client_events) {
         foreach ($client_events as $event) {
             $events[$event->ID] = get_post_meta($event->ID, '_mdjm_event_date', true);
         }
     }
     $response['client'] = array('ID' => $client->ID, 'first_name' => $client->first_name, 'last_name' => $client->last_name, 'email' => $client->user_email, 'last_login' => $client->last_login, 'events' => $events, 'next_event' => array('id' => !empty($next_event) ? $next_event[0]->ID : '', 'date' => !empty($next_event) ? get_post_meta($next_event[0]->ID, '_mdjm_event_date', true) : ''));
     $this->data = array_merge($this->data, $response);
     do_action('mdjm_after_api_get_client', $this);
     $this->output();
 }
 /**
  * Create the HTML output for the next event column
  *
  * @param	obj		$item	The object array for the current item
  *
  * @return	str		The HTML output for the next event column
  */
 public function column_next($item)
 {
     $next = mdjm_get_clients_next_event($item->ID);
     if (!empty($next)) {
         echo '<a href="' . get_edit_post_link($next[0]->ID) . '">' . mdjm_get_event_date($next[0]->ID) . '</a>';
     } else {
         echo __('N/A', 'mobile-dj-manager');
     }
 }
/**
 * Listen for event status changes and update the client status.
 *
 * @since	1.3.7
 * @param	bool	$result		True if the event status change was successful, false if not
 * @param	int		$event_id
 * @return	void
 */
function mdjm_set_client_status_inactive($result, $event_id)
{
    if (!mdjm_get_option('set_client_inactive')) {
        return;
    }
    if (!$result) {
        return;
    }
    $client_id = mdjm_get_event_client_id($event_id);
    if (empty($client_id)) {
        return;
    }
    $next_event = mdjm_get_clients_next_event($client_id);
    if (!$next_event) {
        mdjm_update_client_status($client_id, 'inactive');
    }
}
示例#4
0
/**
 * MDJM Quote Shortcode.
 *
 * Displays the online quotation to the client.
 * 
 * @since	1.3
 * @param	arr		$atts	Arguments passed with the shortcode
 * @return	string
 */
function mdjm_shortcode_quote($atts)
{
    $atts = shortcode_atts(array('button_text' => sprintf(__('Book this %s', 'mobile-dj-manager'), mdjm_get_label_singular())), $atts, 'mdjm-quote');
    $event_id = '';
    if (!empty($_GET['event_id'])) {
        $event_id = $_GET['event_id'];
    } else {
        $next_event = mdjm_get_clients_next_event(get_current_user_id());
        if ($next_event) {
            $event_id = $next_event[0]->ID;
        }
    }
    if (isset($event_id) && mdjm_event_exists($event_id)) {
        if (is_user_logged_in()) {
            global $mdjm_event, $mdjm_quote_button_atts;
            $mdjm_quote_button_atts = $atts;
            $mdjm_event = new MDJM_Event($event_id);
            ob_start();
            if ($mdjm_event) {
                // Some verification
                if (get_current_user_id() != $mdjm_event->client) {
                    mdjm_get_template_part('quote', 'noevent');
                } else {
                    mdjm_get_template_part('quote');
                }
                $output = mdjm_do_content_tags(ob_get_contents(), $mdjm_event->ID, $mdjm_event->client);
            } else {
                mdjm_get_template_part('quote', 'noevent');
                $output = mdjm_do_content_tags(ob_get_contents(), '', get_current_user_id());
            }
            ob_get_clean();
            // Reset global var
            $mdjm_event = '';
            return $output;
        } else {
            echo mdjm_login_form(mdjm_get_current_page_url());
        }
    } else {
        ob_start();
        mdjm_get_template_part('quote', 'noevent');
        $output = mdjm_do_content_tags(ob_get_contents(), '', get_current_user_id());
        ob_get_clean();
    }
}