/**
 * Accept an enquiry.
 *
 * When a client clicks the Book Event button to accept an enquiry
 * transition the event to the awaiting contract status.
 *
 * @since	1.3
 * @param	arr		$data	Data for the transition.
 * @return	bool	True on succes, otherwise false
 */
function mdjm_accept_enquiry($data)
{
    global $current_user;
    $mdjm_event = mdjm_get_event($data['event_id']);
    if (!$mdjm_event) {
        return false;
    }
    do_action('mdjm_pre_event_accept_enquiry', $mdjm_event->ID, $data);
    $data['meta'] = array('_mdjm_event_enquiry_accepted' => current_time('mysql'), '_mdjm_event_enquiry_accepted_by' => $current_user->ID);
    $data['client_notices'] = mdjm_get_option('contract_to_client');
    if (!mdjm_update_event_status($mdjm_event->ID, 'mdjm-contract', $mdjm_event->post_status, $data)) {
        return false;
    }
    mdjm_add_journal(array('user' => get_current_user_id(), 'event' => $mdjm_event->ID, 'comment_content' => sprintf(__('%s has accepted their event enquiry', 'mobile-dj-manager'), $current_user->display_name . '<br>')), array('type' => 'update-event', 'visibility' => '2'));
    $content = '<html>' . "\n" . '<body>' . "\n";
    $content .= '<p>' . sprintf(__('Good news... %s has just accepted their %s quotation via %s', 'mobile-dj-manager'), '{client_fullname}', mdjm_get_label_singular(true), '{application_name}') . '</p>';
    $content .= '<hr />' . "\n";
    $content .= '<h4>' . sprintf(__('<a href="%s">%s ID: %s</a>', 'mobile-dj-manager'), admin_url('post.php?post=' . $mdjm_event->ID . '&action=edit'), mdjm_get_label_singular(), '{contract_id}') . '</h4>' . "\n";
    $content .= '<p>' . sprintf(__('Date: %s', 'mobile-dj-manager'), '{event_date}') . '<br />' . "\n";
    $content .= __('Type', 'mobile-dj-manager') . ': ' . mdjm_get_event_type($mdjm_event->ID) . '<br />' . "\n";
    $content .= __('Status', 'mobile-dj-manager') . ': ' . mdjm_get_event_status($mdjm_event->ID) . '<br />' . "\n";
    $content .= __('Client', 'mobile-dj-manager') . ': {client_fullname}<br />' . "\n";
    $content .= __('Value', 'mobile-dj-manager') . ': {total_cost}<br />' . "\n";
    $content .= __('Deposit', 'mobile-dj-manager') . ': {deposit} ({deposit_status})<br />' . "\n";
    $content .= __('Balance Due', 'mobile-dj-manager') . ': {balance}</p>' . "\n";
    $content .= '<p>' . sprintf(__('<a href="%s">View %s</a>', 'mobile-dj-manager'), admin_url('post.php?post=' . $mdjm_event->ID . '&action=edit'), mdjm_get_label_singular()) . '</p>' . "\n";
    $content .= '</body>' . "\n" . '</html>' . "\n";
    $args = array('to_email' => mdjm_get_option('system_email'), 'event_id' => $mdjm_event->ID, 'client_id' => $mdjm_event->client, 'subject' => sprintf(__('%s Quotation Accepted', 'mobile-dj-manager'), mdjm_get_label_singular()), 'message' => $content, 'copy_to' => 'disabled');
    mdjm_send_email_content($args);
    do_action('mdjm_post_event_accept_enquiry', $mdjm_event->ID, $data);
    return true;
}
예제 #2
0
/**
 * Send admin notice of payment.
 *
 * @since	1.3.8
 * @param
 * @return	void
 */
function mdjm_admin_payment_notice($txn_data)
{
    if (isset($txn_data['gateway'])) {
        $gateway = mdjm_get_gateway_admin_label($txn_data['gateway']);
    } else {
        $gateway = mdjm_get_gateway_admin_label(mdjm_get_default_gateway());
    }
    $subject = sprintf(__('%s Payment received via %s', 'mobile-dj-manager'), mdjm_get_label_singular(), $gateway);
    $subject = apply_filters('mdjm_admin_payment_notice_subject', $subject);
    $content = '<!DOCTYPE html>' . "\n";
    $content .= '<html>' . "\n" . '<body>' . "\n";
    $content .= '<p>' . __('Hi there', 'mobile-dj-manager') . ',</p>' . "\n";
    $content .= '<p>' . __('A payment has just been received via MDJM Event Management', 'mobile-dj-manager') . '</p>' . "\n";
    $content .= '<hr />' . "\n";
    $content .= '<h4>' . sprintf(__('%s ID', 'mobile-dj-manager'), mdjm_get_label_singular()) . ': ' . mdjm_get_event_contract_id($txn_data['event_id']) . '</a></h4>' . "\n";
    $content .= '<p>' . "\n";
    $content .= __('Date', 'mobile-dj-manager') . ': {event_date}<br />' . "\n";
    $content .= __('Status', 'mobile-dj-manager') . ': {event_status}<br />' . "\n";
    $content .= __('Client', 'mobile-dj-manager') . ': {client_fullname}<br />' . "\n";
    $content .= __('Payment Date', 'mobile-dj-manager') . ': {payment_date}<br />' . "\n";
    $content .= __('For', 'mobile-dj-manager') . ': {payment_for}<br />' . "\n";
    $content .= __('Amount', 'mobile-dj-manager') . ': {payment_amount}<br />' . "\n";
    $content .= __('Merchant', 'mobile-dj-manager') . ': ' . $gateway . '<br />' . "\n";
    if (!empty($txn_data['fee'])) {
        $content .= __('Transaction Fee', 'mobile-dj-manager') . ': ' . mdjm_currency_filter(mdjm_format_amount($txn_data['fee'])) . '</span><br />' . "\n";
        $content .= '<strong>' . __('Total Received', 'mobile-dj-manager') . ': ' . mdjm_currency_filter(mdjm_format_amount($txn_data['total'] - $txn_data['fee'])) . '</strong><br />' . "\n";
    }
    $content .= __('Outstanding Balance', 'mobile-dj-manager') . ': {balance}</p>' . "\n";
    $content .= sprintf(__('<a href="%s">View %s</a>', 'mobile-dj-manager'), admin_url('post.php?post=' . $txn_data['event_id'] . '&action=edit'), mdjm_get_label_singular()) . '</p>' . "\n";
    $content .= '<hr />' . "\n";
    $content .= '<p>' . __('Regards', 'mobile-dj-manager') . '<br />' . "\n";
    $content .= '{company_name}</p>' . "\n";
    $content .= '</body>' . "\n";
    $content .= '</html>' . "\n";
    $content = apply_filters('mdjm_admin_payment_notice_content', $content);
    mdjm_send_email_content(array('to_email' => mdjm_get_option('system_email'), 'from_name' => mdjm_get_option('company_name'), 'from_email' => mdjm_get_option('system_email'), 'event_id' => $txn_data['event_id'], 'client_id' => mdjm_get_event_client_id($txn_data['event_id']), 'subject' => $subject, 'message' => $content, 'copy_to' => 'disable', 'source' => __('Automated Payment Received', 'mobile-dj-manager')));
}
예제 #3
0
/**
 * Process the sending of the email
 *
 * @since	1.3
 * @param	arr		$data	Super global $_POST array
 * @return	void
 */
function mdjm_send_comm_email($data)
{
    $url = remove_query_arg(array('mdjm-message', 'event_id', 'template', 'recipient', 'mdjm-action'));
    if (!wp_verify_nonce($data['mdjm_nonce'], 'send_comm_email')) {
        $message = 'nonce_fail';
    } elseif (empty($data['mdjm_email_to']) || empty($data['mdjm_email_subject']) || empty($data['mdjm_email_content'])) {
        $message = 'comm_missing_content';
    } else {
        if (isset($_FILES['mdjm_email_upload_file']) && '' !== $_FILES['mdjm_email_upload_file']['name']) {
            $upload_dir = wp_upload_dir();
            $file_name = $_FILES['mdjm_email_upload_file']['name'];
            $file_path = $upload_dir['path'] . '/' . $file_name;
            $tmp_path = $_FILES['mdjm_email_upload_file']['tmp_name'];
            if (move_uploaded_file($tmp_path, $file_path)) {
                $attachments[] = $file_path;
            }
        }
        if (empty($attachments)) {
            $attachments = array();
        }
        $attachments = apply_filters('mdjm_send_comm_email_attachments', $attachments, $data);
        $email_args = array('to_email' => mdjm_get_client_email($data['mdjm_email_to']), 'from_name' => $data['mdjm_email_from_name'], 'from_email' => $data['mdjm_email_from_address'], 'event_id' => $data['mdjm_email_event'], 'client_id' => $data['mdjm_email_to'], 'subject' => stripslashes($data['mdjm_email_subject']), 'attachments' => !empty($attachments) ? $attachments : array(), 'message' => stripslashes($data['mdjm_email_content']), 'track' => true, 'copy_to' => !empty($data['mdjm_email_copy_to']) ? array($data['mdjm_email_copy_to']) : array(), 'source' => __('Communication Feature', 'mobile-dj-manager'));
        if (mdjm_send_email_content($email_args)) {
            $message = 'comm_sent';
            if (!empty($data['mdjm_event_reject'])) {
                $args = array('reject_reason' => !empty($data['mdjm_email_reject_reason']) ? $data['mdjm_email_reject_reason'] : __('No reason specified', 'mobile-dj-manager'));
                mdjm_update_event_status($email_args['event_id'], 'mdjm-rejected', get_post_status($email_args['event_id']), $args);
            }
        } else {
            $message = 'comm_not_sent';
        }
    }
    wp_redirect(add_query_arg('mdjm-message', $message, $url));
    die;
}
예제 #4
0
 /**
  * Send a copy of the email.
  *
  * @since	1.3
  * @param	str		$subject		The email subject. If omitted, we'll use the title of the tracking post.
  * @param	str		$content		The email content. If omitted, we'll use the tracking ID.
  * @param	arr		$attachments	The email attachments.
  */
 public function send_copy($subject = '', $content = '', $attachments = array())
 {
     if (empty($this->copy_to)) {
         return;
     }
     if (empty($content)) {
         $tracker = get_post($this->tracking_id);
         if (!$tracker) {
             return;
         }
         $content = $tracker->post_content;
         $content = apply_filters('the_content', $content);
         $content = str_replace(']]>', ']]&gt;', $content);
         if (empty($content)) {
             return;
         }
         $subject = html_entity_decode(get_the_title($tracker->ID));
     }
     $copies = is_array($this->copy_to) ? array_unique($this->copy_to) : $this->copy_to;
     $args = array('to_email' => $copies, 'from_name' => $this->from_name, 'from_email' => $this->from_address, 'event_id' => $this->event_id, 'client_id' => !empty($this->event_id) ? mdjm_get_event_client_id($this->event_id) : '', 'subject' => !empty($subject) ? $subject : sprintf(__('Copy of an email recently sent via %s', 'mobile-dj-manager'), '{application_name}'), 'attachments' => $attachments, 'message' => mdjm_email_set_copy_text() . $content, 'track' => false);
     if (mdjm_send_email_content($args)) {
         update_post_meta($tracker->ID, '_mdjm_copy_to', $copies);
     }
 }
예제 #5
0
/**
 * Send the playlist via email.
 *
 * @since	1.3
 * @param	arr		$data	The super global $_POST
 * @return	void
 */
function mdjm_email_event_playlist_action($data)
{
    if (!wp_verify_nonce($data['mdjm_nonce'], 'email_playlist_entry')) {
        $message = 'security_failed';
    } else {
        global $current_user;
        $mdjm_event = mdjm_get_event($data['email_playlist_event_id']);
        $content = mdjm_format_playlist_content($mdjm_event->ID, $data['email_order_by'], 'ASC', true);
        $content = apply_filters('mdjm_print_playlist', $content, $data, $mdjm_event);
        $html_content_start = '<html>' . "\n" . '<body>' . "\n";
        $html_content_end = '<p>' . __('Regards', 'mobile-dj-manager') . '</p>' . "\n" . '<p>{company_name}</p>' . "\n";
        '<p>&nbsp;</p>' . "\n";
        '<p align="center" style="font-size: 9px">Powered by <a style="color:#F90" href="http://mdjm.co.uk" target="_blank">' . MDJM_NAME . '</a> version ' . MDJM_VERSION_NUM . '</p>' . "\n" . '</body>' . "\n" . '</html>';
        $args = array('to_email' => $current_user->user_email, 'from_name' => mdjm_get_option('company_name'), 'from_email' => mdjm_get_option('system_email'), 'event_id' => $mdjm_event->ID, 'client_id' => $mdjm_event->client, 'subject' => sprintf(__('Playlist for %s ID {contract_id}', 'mobile-dj-manager'), mdjm_get_label_singular()), 'message' => $html_content_start . $content . $html_content_end);
        if (mdjm_send_email_content($args)) {
            $message = 'playlist_emailed';
        } else {
            $message = 'playlist_email_failed';
        }
    }
    wp_redirect(add_query_arg('mdjm-message', $message));
    die;
}
예제 #6
0
/**
 * Send a welcome email to a new employee.
 *
 * @since	1.3
 * @param	int		$user_id	The new user ID
 * @param	arr		$userdata	Array of new user data
 * @return	void
 */
function mdjm_send_employee_welcome_email($user_id, $userdata)
{
    global $wp_roles;
    $subject = sprintf(__('Your Employee Details from %s', 'mobile-dj-manager'), mdjm_get_option('company_name'));
    $subject = apply_filters('mdjm_new_employee_subject', $subject, $user_id, $userdata);
    $message = '<p>' . sprintf(__('Hello %s,', 'mobile-dj-manager'), $userdata['first_name']) . '</p>' . "\r\n" . '<p>' . sprintf(__('Your user account on the <a href="%s">%s website</a> is now ready for use.', 'mobile-dj-manager'), get_bloginfo('url'), mdjm_get_option('company_name')) . '</p>' . "\r\n" . '<hr />' . "\r\n" . '<p>' . sprintf(__('<strong>Username</strong>: %s', 'mobile-dj-manager'), $userdata['user_login']) . '<br />' . "\r\n" . sprintf(__('<strong>Password</strong>: %s', 'mobile-dj-manager'), $userdata['user_pass']) . '<br />' . "\r\n" . sprintf(__('<strong>Employee Role</strong>: %s', 'mobile-dj-manager'), translate_user_role($wp_roles->roles[$userdata['role']]['name'])) . '<br />' . "\r\n" . sprintf(__('<strong>Login URL</strong>: <a href="%1$s">%1$s</a>', 'mobile-dj-manager'), admin_url()) . '</p>' . "\r\n" . '<p>' . __('Thanks', 'mobile-dj-manager') . '<br />' . "\r\n" . mdjm_get_option('company_name') . '</p>';
    $message = apply_filters('mdjm_new_employee_message', $message, $user_id, $userdata);
    $email_args = apply_filters('mdjm_new_employee_email', array('to_email' => $userdata['user_email'], 'subject' => $subject, 'track' => false, 'message' => $message));
    mdjm_send_email_content($email_args);
}