Esempio n. 1
0
 function update_settings()
 {
     MDJM()->debug->log_it('Updating Settings for version 1.2.4');
     $mdjm_paypal_settings = get_option('mdjm_paypal_settings');
     $mdjm_payment_settings = get_option('mdjm_payment_settings');
     $mdjm_clientzone_settings = get_option('mdjm_clientzone_settings');
     // Set the payment gateway - PayPal or none
     if (!empty($mdjm_paypal_settings['enable_paypal'])) {
         $mdjm_payment_settings['payment_gateway'] = 'paypal';
     } else {
         $mdjm_payment_settings['payment_gateway'] = false;
     }
     // Remove the enable PayPal setting as no longer required
     unset($mdjm_paypal_settings['enable_paypal']);
     // Setup PayFast default options
     $mdjm_payfast_settings = array('merchant_id' => '', 'merchant_key' => '', 'email_confirmation' => get_bloginfo('admin_email'), 'redirect_pf_success' => !empty($mdjm_paypal_settings['redirect_success']) ? $mdjm_paypal_settings['redirect_success'] : 'N', 'redirect_pf_cancel' => !empty($mdjm_paypal_settings['redirect_cancel']) ? $mdjm_paypal_settings['redirect_cancel'] : 'N', 'payfast_button' => 'paynow_basic_logo.gif', 'enable_pf_sandbox' => false, 'sandbox_merchant_id' => '', 'sandbox_merchant_key' => '', 'payfast_debug' => false);
     // Add the notification to admin on event status change setting
     $mdjm_clientzone_settings['mdjm_clientzone_settings'] = true;
     update_option('mdjm_paypal_settings', $mdjm_paypal_settings);
     update_option('mdjm_payfast_settings', $mdjm_payfast_settings);
     update_option('mdjm_payment_settings', $mdjm_payment_settings);
     update_option('mdjm_clientzone_settings', $mdjm_clientzone_settings);
     $status = get_option('__mydj_validation');
     if ($status['key'] == 'XXXX' || ($status['type'] = 'trial' || time() >= strtotime($status['expire']))) {
         add_option('mdjm_price_warn', 1, '', 'yes');
     }
     MDJM()->debug->log_it('Settings Updated');
 }
 function update_settings()
 {
     MDJM()->debug->log_it('Updating Settings for version 1.2.3.3');
     if (!get_option('m_d_j_m_has_initiated')) {
         add_option('m_d_j_m_has_initiated', current_time('timestamp'));
     }
     MDJM()->debug->log_it('Settings Updated');
 }
 function update_settings()
 {
     $payment_settings = get_option('mdjm_payment_settings');
     MDJM()->debug->log_it('Updating Payment settings', false);
     $payment_settings['deposit_type'] = false;
     $payment_settings['deposit_amount'] = '50.00';
     update_option('mdjm_payment_settings', $payment_settings);
 }
Esempio n. 4
0
 function update_settings()
 {
     MDJM()->debug->log_it('Updating Settings for version 1.2.7');
     // Update the Availability Checker settings and set default settings for Unavailable Status
     $mdjm_availability_settings = get_option('mdjm_availability_settings');
     $mdjm_availability_settings['availability_status'] = array('mdjm-enquiry', 'mdjm-contract', 'mdjm-approved');
     update_option('mdjm_availability_settings', $mdjm_availability_settings);
     MDJM()->debug->log_it('Settings Updated');
 }
 function update_settings()
 {
     MDJM()->debug->log_it('Updating Settings');
     // Add the enable playlist setting option and enable by default
     $playlist_settings = get_option('mdjm_playlist_settings');
     $playlist_settings['enable_playlists'] = true;
     update_option('mdjm_playlist_settings', $playlist_settings);
     MDJM()->debug->log_it('Settings Updated');
 }
 function update_settings()
 {
     MDJM()->debug->log_it('Updating Settings for version 1.2.4.1');
     $status = get_option('__mydj_validation');
     if ($status['key'] == 'XXXX' || ($status['type'] = 'trial' || time() >= strtotime($status['expire']))) {
         add_option('mdjm_price_warn', 1, '', 'yes');
     }
     MDJM()->debug->log_it('Settings Updated');
 }
 function create_template()
 {
     MDJM()->debug->log_it('Adding quote template for version 1.2.3.3');
     include MDJM_PLUGIN_DIR . '/includes/admin/mdjm-templates.php';
     if (wp_insert_post($online_quote_template_args)) {
         MDJM()->debug->log_it(' Online Quote template created successfully');
     } else {
         MDJM()->debug->log_it(' Online Quote template was not created');
     }
     MDJM()->debug->log_it('Quote template added');
 }
 function update_settings()
 {
     MDJM()->debug->log_it('Updating Settings for version 1.2.3.6');
     $mdjm_paypal_settings = get_option('mdjm_paypal_settings');
     $mdjm_payment_settings = get_option('mdjm_payment_settings');
     $mdjm_paypal_settings['button_text'] = __('Pay Now', 'mobile-dj-manager');
     // Customised HTML button text for payments
     $mdjm_payment_settings['other_amount_label'] = __('Other Amount', 'mobile-dj-manager');
     // Customised text for other amoun radio field
     update_option('mdjm_paypal_settings', $mdjm_paypal_settings);
     update_option('mdjm_payment_settings', $mdjm_payment_settings);
     MDJM()->debug->log_it('Settings Updated');
 }
Esempio n. 9
0
 /**
  * Remove deprecated DB tables
  *
  *
  *
  *
  */
 function remove_deprecated_db_tables()
 {
     global $wpdb;
     MDJM()->debug->log_it('Removing deprecated DB tables');
     $tables = array('Events' => $wpdb->prefix . 'mdjm_events', 'Music Library' => $wpdb->prefix . 'mdjm_music_library', 'Transactions' => $wpdb->prefix . 'mdjm_trans', 'Journal' => $wpdb->prefix . 'mdjm_journal');
     foreach ($tables as $table_display => $table_name) {
         $results = $wpdb->get_results("SHOW TABLES LIKE '" . $table_name . "'");
         if ($results) {
             $wpdb->query('DROP TABLE IF EXISTS ' . $table_name);
             MDJM()->debug->log_it($table_name . ' Removed');
         }
     }
     MDJM()->debug->log_it('Completed removing deprecated DB tables');
 }
Esempio n. 10
0
 function update_playlist()
 {
     global $wpdb;
     MDJM()->debug->log_it('Updating playlist entries');
     $query = "SELECT * FROM " . MDJM_PLAYLIST_TABLE . " WHERE `date_to_mdjm` IS NOT NULL AND `date_to_mdjm` != '' AND `date_to_mdjm` != '0000-00-00 00:00:00' ORDER BY `event_id`";
     $records = $wpdb->get_results($query);
     $rows = $wpdb->num_rows;
     MDJM()->debug->log_it($rows . ' ' . _n('record ', 'records ', $rows) . ' to update');
     if ($rows > 0) {
         $i = 0;
         foreach ($records as $record) {
             $wpdb->update(MDJM_PLAYLIST_TABLE, array('upload_procedure' => '1'), array('id' => $record->id));
             $i++;
         }
         MDJM()->debug->log_it($i . ' ' . _n('record ', 'records ', $rows) . ' updated');
     } else {
         MDJM()->debug->log_it('No records to update');
     }
 }
Esempio n. 11
0
 function update_settings()
 {
     MDJM()->debug->log_it('Updating Settings for version 1.2.5');
     // Copy the payment gateway settings over the the MDJM PG addon even if it is not installed yet
     $mdjm_paypal_settings = get_option('mdjm_paypal_settings');
     $mdjm_payfast_settings = get_option('mdjm_payfast_settings');
     if (!empty($mdjm_paypal_settings)) {
         update_option('mdjm_pg_paypal', $mdjm_paypal_settings);
     }
     if (!empty($mdjm_payfast_settings)) {
         update_option('mdjm_pg_payfast', $mdjm_payfast_settings);
     }
     // Now delete the options from the MDJM Settings
     delete_option('mdjm_paypal_settings');
     delete_option('mdjm_payfast_settings');
     // Delete no longer required settings
     delete_option('__mydj_validation');
     delete_option('m_d_j_m_has_initiated');
     delete_option('mdjm_pp_options');
     delete_option('mdjm_price_warn');
     MDJM()->debug->log_it('Settings Updated');
 }
Esempio n. 12
0
        function update_profile()
        {
            global $mdjm, $current_user;
            MDJM()->debug->log_it('Starting user profile update for user ' . $current_user->display_name, true);
            // Firstly, our security check
            if (!isset($_POST['__mdjm_user']) || !wp_verify_nonce($_POST['__mdjm_user'], 'manage_client_profile')) {
                MDJM()->debug->log_it('Security verification failed during update. No update occured', false);
                return parent::display_message(4, 4);
            } else {
                // Set our variables for updating
                $update_fields = array('ID' => $current_user->ID);
                $update_meta = array();
                // Process the standard fields
                $update_fields['first_name'] = sanitize_text_field(ucfirst($_POST['first_name']));
                $update_fields['last_name'] = sanitize_text_field(ucfirst($_POST['last_name']));
                $update_fields['user_email'] = sanitize_email($_POST['user_email']);
                // Now the custom fields
                foreach ($this->fields as $field) {
                    if (!isset($field['required']) || empty($field['display'])) {
                        continue;
                    }
                    if ($field['type'] == 'text' || $field['type'] == 'dropdown') {
                        $update_meta[$field['id']] = !empty($_POST[$field['id']]) ? sanitize_text_field($_POST[$field['id']]) : '';
                    }
                    if ($field['type'] == 'checkbox') {
                        $update_meta[$field['id']] = !empty($_POST[$field['id']]) ? $_POST[$field['id']] : '0';
                    }
                }
                // Password Reset Validation if required
                if (!empty($_POST['new_password']) && $_POST['new_password'] != $_POST['new_password_confirm']) {
                    $pass_error = true;
                }
                if (!empty($_POST['new_password']) && $_POST['new_password'] == $_POST['new_password_confirm']) {
                    $update_fields['user_pass'] = $_POST['new_password'];
                }
                // Process field updates starting with custom fields
                foreach ($update_meta as $meta_key => $meta_value) {
                    if (update_user_meta($current_user->ID, $meta_key, $meta_value)) {
                        MDJM()->debug->log_it('Success: User profile field ' . $meta_key . ' updated with value ' . $meta_value, false);
                    } else {
                        MDJM()->debug->log_it('Failure: User profile field ' . $meta_key . ' could not be updated with value ' . $meta_value, false);
                    }
                }
                // And now built-in fields
                $user_id = wp_update_user($update_fields);
                // If we changed the password, we need to logout
                if (isset($update_fields['user_pass'])) {
                    MDJM()->debug->log_it('User password was changed. Logging user out', false);
                    wp_logout();
                    ?>
						<script type="text/javascript">
                        window.location.replace("<?php 
                    echo mdjm_get_formatted_url(mdjm_get_option('profile_page'));
                    ?>
");
                        </script>
                        <?php 
                    exit;
                }
                // We're done
                if (is_wp_error($user_id)) {
                    parent::display_notice(4, 'Unable to update your profile. ' . $user_id->get_error_message());
                } else {
                    parent::display_notice(2, 'Your profile has been updated successfully');
                }
                if (isset($pass_error) && $pass_error == true) {
                    parent::display_notice(4, 'Unable to change your password. Check the password\'s you entered match!');
                }
            }
        }
/**
 * 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 
}
Esempio n. 14
0
/**
 * Email the manual payment confirmation to the client from a customisable email template.
 *
 * @since	1.3
 * @param	int		$event_id		The event ID
 * @return	void
 */
function mdjm_email_manual_payment_confirmation($event_id)
{
    if (!mdjm_get_option('manual_payment_cfm_template')) {
        return;
    }
    $mdjm_event = mdjm_get_event($event_id);
    $from_name = mdjm_email_set_from_name('manual_payment', $mdjm_event);
    $from_name = apply_filters('mdjm_email_from_name', $from_name, 'manual_payment', $mdjm_event);
    $from_email = mdjm_email_set_from_address('manual_payment', $mdjm_event);
    $from_email = apply_filters('mdjm_email_from_address', $from_email, 'manual_payment', $mdjm_event);
    $client = get_userdata($mdjm_event->client);
    $to_email = $client->user_email;
    $subject = mdjm_email_set_subject(mdjm_get_option('manual_payment_cfm_template', false));
    $subject = apply_filters('mdjm_manual_payment_subject', wp_strip_all_tags($subject));
    $subject = mdjm_do_content_tags($subject, $event_id, $mdjm_event->client);
    $attachments = apply_filters('mdjm_manual_payment_attachments', array(), $mdjm_event);
    $message = mdjm_get_email_template_content(mdjm_get_option('manual_payment_cfm_template', false));
    $message = mdjm_do_content_tags($message, $event_id, $mdjm_event->client);
    $emails = MDJM()->emails;
    $emails->__set('event_id', $mdjm_event->ID);
    $emails->__set('from_name', $from_name);
    $emails->__set('from_address', $from_email);
    $headers = apply_filters('mdjm_manual_payment_headers', $emails->get_headers(), $event_id, $mdjm_event->client);
    $emails->__set('headers', $headers);
    $emails->__set('track', apply_filters('mdjm_track_email_manual_payment', mdjm_get_option('track_client_emails')));
    if (mdjm_get_option('bcc_admin_to_client')) {
        $emails->__set('copy_to', array(mdjm_get_option('system_email')));
    }
    $emails->send($to_email, $subject, $message, $attachments, sprintf(__('Payment received confirmation for %s', 'mobile-dj-manager'), mdjm_get_label_singular()));
}
Esempio n. 15
0
 public function add_journal($data, $meta)
 {
     global $mdjm, $post;
     if (MDJM_JOURNAL != true) {
         if (MDJM_DEBUG == true) {
             MDJM()->debug->log_it('ERROR:	Instructed to Journal whilst Journalling is disabled');
         }
         return;
     }
     if (empty($data['comment_content'])) {
         if (MDJM_DEBUG == true) {
             MDJM()->debug->log_it('ERROR: Missing Comment Contents in ' . __FUNCTION__, true);
         }
         return false;
     }
     if (empty($meta['type'])) {
         if (MDJM_DEBUG == true) {
             MDJM()->debug->log_it('ERROR: Missing Comment Type in ' . __FUNCTION__, true);
         }
         return false;
     }
     /* -- Disable Comment Flood Prevention -- */
     add_filter('comment_flood_filter', '__return_false');
     $event_id = !empty($data['event']) ? $data['event'] : $post->ID;
     if (empty($event_id)) {
         if (MDJM_DEBUG == true) {
             MDJM()->debug->log_it('ERROR: Missing event id in ' . __FUNCTION__, true);
         }
         return false;
     }
     /* -- Set the content -- */
     if (isset($data['user'])) {
         $commenter = get_userdata($data['user']);
     } else {
         $commenter = 'mdjm';
     }
     $comment_data = array('comment_post_ID' => (int) $event_id, 'comment_author' => $commenter != 'mdjm' ? $commenter->display_name : '', 'comment_author_email' => $commenter != 'mdjm' ? $commenter->user_email : '', 'comment_author_IP' => !empty($_SERVER['REMOTE_ADDR']) ? preg_replace('/[^0-9a-fA-F:., ]/', '', $_SERVER['REMOTE_ADDR']) : '', 'comment_agent' => isset($_SERVER['HTTP_USER_AGENT']) ? substr($_SERVER['HTTP_USER_AGENT'], 0, 254) : '', 'comment_author_url' => $commenter != 'mdjm' ? !empty($commenter->user_url) ? $commenter->user_url : '' : '', 'comment_content' => $data['comment_content'] . ' (' . time() . ')', 'comment_type' => !empty($data['comment_type']) ? $data['comment_type'] : 'mdjm-journal', 'comment_date' => !empty($data['comment_date']) ? $data['comment_date'] : current_time('mysql'), 'user_id' => $commenter != 'mdjm' ? $commenter->ID : '0', 'comment_parent' => 0, 'comment_approved' => 1);
     // Filter the comment data before inserting
     $comment_data = apply_filters('preprocess_comment', $comment_data);
     $comment_data = wp_filter_comment($comment_data);
     /* -- Disable comment duplication check filter -- */
     remove_filter('commentdata', 'comment_duplicate_trigger');
     /* -- Insert the entry -- */
     $comment_id = wp_insert_comment($comment_data);
     if (empty($comment_id)) {
         return false;
     }
     /* -- Set the meta -- */
     $comment_meta = array('mdjm_type' => $meta['type'], 'mdjm_visibility' => !empty($meta['visibility']) ? $meta['visibility'] : '0', 'mdjm_notify' => !empty($meta['notify']) ? $meta['notify'] : '', 'mdjm_to' => !empty($meta['to']) ? $meta['to'] : '', 'mdjm_isread' => !empty($meta['isread']) ? $meta['isread'] : '');
     /* -- Insert the meta -- */
     foreach ($comment_meta as $key => $value) {
         if (!empty($value)) {
             add_comment_meta($comment_id, $key, $value, false);
         }
     }
     /* -- Enable comment filter -- */
     add_filter('commentdata', 'comment_duplicate_trigger');
     return $comment_id;
 }
Esempio n. 16
0
 function __construct()
 {
     MDJM()->debug->log_it('No updates required for version 1.2.7.2');
 }
Esempio n. 17
0
/**
 * Save the meta data for the transaction
 *
 * @since	0.7
 * @param	int		$post_id		The current post ID.
 * @param	obj		$post			The current post object (WP_Post).
 * @param	bool	$update			Whether this is an existing post being updated or not.
 * @return	void
 */
function mdjm_save_txn_post($post_id, $post, $update)
{
    global $mdjm_settings;
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }
    if ($post->post_status == 'trash') {
        return;
    }
    if (empty($update)) {
        return;
    }
    // Permission Check
    if (!mdjm_employee_can('edit_txns')) {
        if (MDJM_DEBUG == true) {
            MDJM()->debug->log_it('PERMISSION ERROR: User ' . get_current_user_id() . ' is not allowed to edit transactions');
        }
        return;
    }
    // Remove the save post action to avoid loops
    remove_action('save_post_mdjm-transaction', 'mdjm_save_txn_post', 10, 3);
    // Fire our pre-save hook
    do_action('mdjm_before_txn_save', $post_id, $post, $update);
    $trans_type = get_term($_POST['mdjm_transaction_type'], 'transaction-types');
    // Set the post data
    $trans_data['ID'] = $post_id;
    $trans_data['post_status'] = $_POST['transaction_direction'] == 'Out' ? 'mdjm-expenditure' : 'mdjm-income';
    $trans_data['post_date'] = date('Y-m-d H:i:s', strtotime($_POST['transaction_date']));
    $trans_data['edit_date'] = true;
    $trans_data['post_author'] = get_current_user_id();
    $trans_data['post_type'] = 'mdjm-transaction';
    $trans_data['post_category'] = array($_POST['mdjm_transaction_type']);
    // Set the post meta
    $trans_meta['_mdjm_txn_status'] = sanitize_text_field($_POST['transaction_status']);
    $trans_meta['_mdjm_txn_source'] = sanitize_text_field($_POST['transaction_src']);
    $trans_meta['_mdjm_txn_total'] = $_POST['transaction_amount'];
    $trans_meta['_mdjm_txn_notes'] = sanitize_text_field($_POST['transaction_description']);
    if ($_POST['transaction_direction'] == 'In') {
        $trans_meta['_mdjm_payment_from'] = sanitize_text_field($_POST['transaction_payee']);
    } elseif ($_POST['transaction_direction'] == 'Out') {
        $trans_meta['_mdjm_payment_to'] = sanitize_text_field($_POST['transaction_payee']);
    }
    $trans_meta['_mdjm_txn_currency'] = mdjm_get_currency();
    // Update the post
    if (MDJM_DEBUG == true) {
        MDJM()->debug->log_it('Updating the transaction');
    }
    wp_update_post($trans_data);
    // Set the transaction Type
    if (MDJM_DEBUG == true) {
        MDJM()->debug->log_it('Setting the transaction type');
    }
    wp_set_post_terms($post_id, $_POST['mdjm_transaction_type'], 'transaction-types');
    // Add the meta data
    if (MDJM_DEBUG == true) {
        MDJM()->debug->log_it('Updating the transaction post meta');
    }
    // Loop through the post meta and add/update/delete the meta keys.
    foreach ($trans_meta as $meta_key => $new_meta_value) {
        $current_meta_value = get_post_meta($post_id, $meta_key, true);
        // If we have a value and the key did not exist previously, add it.
        if (!empty($new_meta_value) && empty($current_meta_value)) {
            add_post_meta($post_id, $meta_key, $new_meta_value, true);
        } elseif (!empty($new_meta_value) && $new_meta_value != $current_meta_value) {
            update_post_meta($post_id, $meta_key, $new_meta_value);
        } elseif (empty($new_meta_value) && !empty($current_meta_value)) {
            delete_post_meta($post_id, $meta_key, $new_meta_value);
        }
    }
    // Fire our post txn save hook
    do_action('mdjm_after_txn_save', $post_id, $post, $update);
    // Re-add the save post action to avoid loops
    add_action('save_post_mdjm-transaction', 'mdjm_save_txn_post', 10, 3);
}
Esempio n. 18
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')));
}
Esempio n. 19
0
/**
 * Update the DJ capabilities.
 * 
 * 
 *
 *
 */
function mdjm_update_dj_caps_13()
{
    MDJM()->debug->log_it('Updating DJ capabilities', true);
    $role = get_role('dj');
    $role->add_cap('mdjm_employee');
    $role->add_cap('edit_posts');
    $role->add_cap('delete_posts');
    $role->add_cap('read');
    MDJM()->debug->log_it('Completed updating DJ capabilities', true);
}
 function insert_comm($args)
 {
     global $mdjm;
     if (MDJM_DEBUG == true) {
         MDJM()->debug->log_it('Starting ' . __METHOD__, true);
     }
     if (empty($args) || !is_array($args)) {
         return mdjm_update_notice('update-nag', 'The communication was not logged');
     }
     $post_args['post_title'] = isset($args['subject']) ? wp_strip_all_tags($args['subject']) : '';
     $post_args['post_content'] = isset($args['content']) ? $args['content'] : '';
     $post_args['post_status'] = isset($args['status']) ? $args['status'] : 'ready to send';
     $post_args['post_author'] = isset($args['author']) ? $args['author'] : get_current_user_id();
     $meta_args['date_sent'] = isset($args['date_sent']) ? $args['date_sent'] : time();
     $meta_args['recipient'] = isset($args['recipient']) ? $args['recipient'] : '';
     $meta_args['source'] = isset($args['source']) ? $args['source'] : '';
     $meta_args['event'] = isset($args['event']) ? $args['event'] : '';
     if (empty($post_args['post_title'])) {
         return mdjm_update_notice('update-nag', 'The communication was not logged - no title ' . $post_args['post_title']);
     }
     if (empty($post_args['post_content'])) {
         return mdjm_update_notice('update-nag', 'The communication was not logged - no content ' . $post_args['post_content']);
     }
     if (empty($meta_args['recipient'])) {
         return mdjm_update_notice('update-nag', 'The communication was not logged - no recipient ' . $post_args['recipient']);
     }
     if (empty($meta_args['source'])) {
         return mdjm_update_notice('update-nag', 'The communication was not logged - no source ' . $post_args['source']);
     }
     $post_args['post_type'] = 'mdjm_communication';
     $post_args['ping_status'] = false;
     $post_args['comment_status'] = 'closed';
     if (MDJM_DEBUG == true) {
         MDJM()->debug->log_it('	-- Inserting COMM Post');
     }
     $comm_post_id = wp_insert_post($post_args);
     if ($comm_post_id) {
         if (MDJM_DEBUG == true) {
             MDJM()->debug->log_it('	-- COMM post created ' . $comm_post_id);
         }
         foreach ($meta_args as $meta_key => $meta_value) {
             add_post_meta($comm_post_id, '_' . $meta_key, $meta_value);
         }
     }
     // Process attachments
     if (!empty($args['attachments']) && is_array($args['attachments'])) {
         if (MDJM_DEBUG == true) {
             MDJM()->debug->log_it('	-- This email has attachments');
         }
         foreach ($args['attachments'] as $file) {
             // Make sure the file exists
             if (!file_exists($file)) {
                 if (MDJM_DEBUG == true) {
                     MDJM()->debug->log_it('	-- ERROR: Attachment not found, will not process');
                 }
                 continue;
             }
             $file_type = wp_check_filetype(basename($file), null);
             $upload_dir = wp_upload_dir();
             // Prepare an array of post data for the attachment.
             $attachment = array('guid' => $upload_dir['url'] . '/' . basename($file), 'post_mime_type' => $file_type['type'], 'post_title' => preg_replace('/\\.[^.]+$/', '', basename($file)), 'post_content' => '', 'post_status' => 'inherit');
             // Insert the attachment.
             $attach_id = wp_insert_attachment($attachment, $file, $comm_post_id);
             if ($attach_id) {
                 if (MDJM_DEBUG == true) {
                     MDJM()->debug->log_it('	-- Attachment post inserted successfully. ID ' . $attach_id);
                 }
             } else {
                 if (MDJM_DEBUG == true) {
                     MDJM()->debug->log_it('	-- Attachment post could not be inserted');
                 }
             }
             // Make sure that this file is included, as wp_generate_attachment_metadata() depends on it.
             require_once ABSPATH . 'wp-admin/includes/image.php';
             // Generate the metadata for the attachment, and update the database record.
             $attach_data = wp_generate_attachment_metadata($attach_id, $file);
             wp_update_attachment_metadata($attach_id, $attach_data);
         }
         // End foreach( $args['attachments'] as $file )
     }
     // Attachments
     return $comm_post_id;
 }
Esempio n. 21
0
 /**
  * filter_content
  * Search and replace through the $content
  * 
  * 
  *
  * @param	int			$client			Optional: the user ID of the client
  *			int			$event			Optional: the post ID of the event
  *			str			$content		Required: the content to be filtered
  *			
  * @return	str|bool					New string on success | false on fail
  * @since	1.1.3
  */
 public function filter_content($client = '', $event = '', $content = '')
 {
     global $mdjm_settings;
     if (MDJM_DEBUG == true) {
         MDJM()->debug->log_it('Starting ' . __FUNCTION__, true);
     }
     if (empty($content)) {
         if (MDJM_DEBUG == true) {
             MDJM()->debug->log_it('	ERROR: No content passed for filtering ');
         }
         return false;
     }
     /* -- Setup Client Data -- */
     if (!empty($client)) {
         /* -- Retrieve the user info -- */
         $c = !is_array($client) ? get_userdata($client) : $client;
         // Client password reset action
         $c_pw = sprintf(__('Please <a href="%s">click here</a> to reset your password', 'mobile-dj-manager'), home_url('/wp-login.php?action=lostpassword'));
         $reset = get_user_meta($c->ID, 'mdjm_pass_action', true);
         if (!empty($reset)) {
             if (MDJM_DEBUG == true) {
                 MDJM()->debug->log_it('	-- Password reset for user ' . $c->ID);
             }
             $reset = wp_generate_password(mdjm_get_option('pass_length', 8), mdjm_get_option('complex_passwords', true));
             wp_set_password($reset, $c->ID);
             $c_pw = $reset;
         }
         /* -- Client Address -- */
         if (!empty($c->address1)) {
             $c_address[] = $c->address1;
             if (!empty($c->address2)) {
                 $c_address[] = $c->address2;
             }
             if (!empty($c->town)) {
                 $c_address[] = $c->town;
             }
             if (!empty($c->county)) {
                 $c_address[] = $c->county;
             }
             if (!empty($c->county)) {
                 $c_address[] = $c->postcode;
             }
         }
     }
     /* -- Setup Event, DJ & Venue Data -- */
     if (!empty($event)) {
         /* -- Retrieve the event info -- */
         $e = !is_array($event) ? get_post($event) : $event;
         $eventinfo = MDJM()->events->event_detail($e->ID);
         $venue_details = MDJM()->events->mdjm_get_venue_details(get_post_meta($e->ID, '_mdjm_event_venue_id', true), $e->ID);
     }
     /* -- Replacements -- */
     $pairs = array('{ADMIN_URL}' => admin_url(), '{APPLICATION_HOME}' => mdjm_get_formatted_url(MDJM_HOME, false), '{APPLICATION_NAME}' => MDJM_APP, '{COMPANY_NAME}' => MDJM_COMPANY, '{CONTACT_PAGE}' => mdjm_get_formatted_url(MDJM_CONTACT_PAGE, false), '{DDMMYYYY}' => date(MDJM_SHORTDATE_FORMAT), '{WEBSITE_URL}' => home_url(), '{CLIENT_FIRSTNAME}' => !empty($c->first_name) ? $c->first_name : '', '{CLIENT_LASTNAME}' => !empty($c->last_name) ? $c->last_name : '', '{CLIENT_FULLNAME}' => !empty($c->display_name) ? $c->display_name : '', '{CLIENT_FULL_ADDRESS}' => !empty($c_address) ? implode('<br />', $c_address) : '', '{CLIENT_EMAIL}' => !empty($c->user_email) ? $c->user_email : '', '{CLIENT_PRIMARY_PHONE}' => !empty($c->phone1) ? $c->phone1 : '', '{CLIENT_USERNAME}' => !empty($c->user_login) ? $c->user_login : '', '{CLIENT_PASSWORD}' => !empty($c_pw) ? $c_pw : '', '{ADMIN_NOTES}' => !empty($eventinfo['admin_notes']) ? $eventinfo['admin_notes'] : '', '{BALANCE}' => !empty($eventinfo['balance']) ? $eventinfo['balance'] : '', '{CONTRACT_DATE}' => !empty($eventinfo['contract_date']) ? $eventinfo['contract_date'] : date(MDJM_SHORTDATE_FORMAT), '{CONTRACT_ID}' => !empty($e) ? $e->post_title : '', '{CONTRACT_URL}' => !empty($e) ? mdjm_get_formatted_url(MDJM_CONTRACT_PAGE) . 'event_id=' . $e->ID : '', '{DEPOSIT}' => !empty($eventinfo['deposit']) ? $eventinfo['deposit'] : '', '{DEPOSIT_STATUS}' => !empty($eventinfo['deposit_status']) ? $eventinfo['deposit_status'] : __('Due'), '{DJ_EMAIL}' => !empty($eventinfo['dj']->user_email) ? $eventinfo['dj']->user_email : __('Not Assigned'), '{DJ_FIRSTNAME}' => !empty($eventinfo['dj']->user_firstname) ? $eventinfo['dj']->user_firstname : '', '{DJ_FULLNAME}' => !empty($eventinfo['dj']->display_name) ? $eventinfo['dj']->display_name : '', '{DJ_NOTES}' => !empty($eventinfo['dj_notes']) ? $eventinfo['dj_notes'] : '', '{DJ_PRIMARY_PHONE}' => !empty($eventinfo['dj']->phone1) ? $eventinfo['dj']->phone1 : '', '{DJ_SETUP_DATE}' => !empty($eventinfo['setup_date']) && $eventinfo['setup_date'] != 'Not Specified' ? date(MDJM_SHORTDATE_FORMAT, $eventinfo['setup_date']) : __('Not Specified'), '{DJ_SETUP_TIME}' => !empty($eventinfo['setup_time']) ? $eventinfo['setup_time'] : '', '{END_TIME}' => !empty($eventinfo['finish']) ? $eventinfo['finish'] : '', '{END_DATE}' => !empty($eventinfo['end_date']) && is_numeric($eventinfo['end_date']) ? date(MDJM_SHORTDATE_FORMAT, $eventinfo['end_date']) : __('Not Specified'), '{EVENT_DATE}' => !empty($eventinfo['date']) && is_numeric($eventinfo['date']) ? date('l, jS F Y', $eventinfo['date']) : __('Not Specified'), '{EVENT_DATE_SHORT}' => !empty($eventinfo['date']) && is_numeric($eventinfo['date']) ? date(MDJM_SHORTDATE_FORMAT, $eventinfo['date']) : __('Not Specified'), '{EVENT_DESCRIPTION}' => !empty($eventinfo['notes']) ? $eventinfo['notes'] : '', '{EVENT_NAME}' => !empty($eventinfo['name']) ? $eventinfo['name'] : '', '{EVENT_STATUS}' => !empty($eventinfo['status']) ? $eventinfo['status'] : '', '{EVENT_TYPE}' => !empty($eventinfo['type']) ? $eventinfo['type'] : '', '{PAYMENT_URL}' => !empty($e) ? mdjm_get_formatted_url(MDJM_PAYMENT_PAGE) . 'event_id=' . $e->ID : '', '{PAYMENT_HISTORY}' => !empty($eventinfo['payment_history']) ? $eventinfo['payment_history'] : __('No payments', 'mobile-dj-manager'), '{PLAYLIST_CLOSE}' => $mdjm_settings['playlist']['close'] != 0 ? $mdjm_settings['playlist']['close'] : 'never', '{PLAYLIST_URL}' => mdjm_get_formatted_url(MDJM_PLAYLIST_PAGE, false), '{QUOTES_URL}' => !empty($e->ID) ? mdjm_get_formatted_url(MDJM_QUOTES_PAGE, true) . 'event_id=' . $e->ID : '', '{GUEST_PLAYLIST_URL}' => !empty($eventinfo['guest_playlist']) ? $eventinfo['guest_playlist'] : '', '{START_TIME}' => !empty($eventinfo['start']) ? $eventinfo['start'] : '', '{TOTAL_COST}' => !empty($eventinfo['cost']) ? $eventinfo['cost'] : '', '{VENUE}' => !empty($venue_details['name']) ? stripslashes($venue_details['name']) : '', '{VENUE_CONTACT}' => !empty($venue_details['venue_contact']) ? stripslashes($venue_details['venue_contact']) : '', '{VENUE_DETAILS}' => !empty($venue_details['details']) ? implode('<br />', $venue_details['details']) : '', '{VENUE_EMAIL}' => !empty($venue_details['venue_email']) ? stripslashes($venue_details['venue_email']) : '', '{VENUE_FULL_ADDRESS}' => !empty($venue_details['full_address']) ? implode('<br />', $venue_details['full_address']) : '', '{VENUE_NOTES}' => !empty($venue_details['venue_information']) ? stripslashes($venue_details['venue_information']) : '', '{VENUE_TELEPHONE}' => !empty($venue_details['venue_phone']) ? stripslashes($venue_details['venue_phone']) : '', '{AVAILABLE_PACKAGES}' => !empty($eventinfo['dj']->ID) ? get_available_packages($eventinfo['dj']->ID, false) : get_available_packages('', false), '{AVAILABLE_PACKAGES_COST}' => !empty($eventinfo['dj']->ID) ? get_available_packages($eventinfo['dj']->ID, true) : get_available_packages('', true), '{EVENT_PACKAGE}' => !empty($eventinfo['package']) && !empty($e->ID) ? get_event_package($e->ID, false) : 'N/A', '{EVENT_PACKAGE_COST}' => !empty($e) ? get_event_package($e->ID, true) : 'N/A', '{EVENT_ADDONS}' => !empty($eventinfo['addons']) ? $eventinfo['addons'] : 'N/A', '{EVENT_ADDONS_COST}' => !empty($e) ? get_event_addons($e->ID, true) : 'N/A');
     // Allow the $pairs array to be filtered
     $pairs = apply_filters('mdjm_shortcode_filter_pairs', $pairs, !empty($e->ID) ? $e->ID : '', !empty($eventinfo) ? $eventinfo : '');
     /* -- Create the Search/Replace Array's -- */
     foreach ($pairs as $key => $value) {
         $search[] = $key;
         $replace[] = $value;
     }
     /* -- Return the filtered data -- */
     if (MDJM_DEBUG == true) {
         MDJM()->debug->log_it('Completed ' . __FUNCTION__, true);
     }
     return str_replace($search, $replace, $content);
 }
Esempio n. 22
0
        function client_form()
        {
            global $my_mdjm, $mdjm, $mdjm_settings;
            /* -- Playlist Additions -- */
            if (isset($_POST['submit']) && $_POST['submit'] == 'Add Song') {
                $this->add_song();
            }
            /* -- Playlist Removal -- */
            if (isset($_GET['remove_song']) && !empty($_GET['remove_song'])) {
                $this->remove_song($_GET['remove_song']);
            }
            /* -- Enqueue jQuery validation -- */
            wp_enqueue_script('mdjm-validation');
            /* WELCOME TEXT */
            echo parent::__text('playlist_welcome', '<p>Welcome to the ' . MDJM_COMPANY . ' event playlist management system.</p>');
            /* INTRO TEXT */
            echo parent::__text('playlist_intro', '<p>Use this tool to let your DJ know the songs that you would like played (or perhaps not played) ' . 'during your event on <strong>' . date('l, jS F Y', $this->eventinfo['date']) . '</strong>.</p>');
            /* If client has more than one event, allow them to switch between events */
            if (count($my_mdjm['active']) > 1) {
                ?>
					<?php 
                /* EDITING PLAYLIST TEXT */
                echo parent::__text('playlist_edit', '<p>You are currently editing the playlist for your event on ' . date('l, jS F Y', $this->eventinfo['date']) . '. To edit the playlist for one of your other events, ' . 'return to the <a href="' . mdjm_get_formatted_url(MDJM_HOME, false) . '">' . MDJM_APP . ' home page</a> and select Edit Playlist from the drop down list displayed next to the event for ' . 'which you want to edit the playlist.</p>');
            }
            // if( count( $my_mdjm['active'] ) > 1 )
            $num_songs = MDJM()->events->count_playlist_entries($this->event->ID);
            /* Display the form to add songs to playlist */
            if (MDJM()->events->playlist_status($this->eventinfo['date'])) {
                // Display form
                echo '<hr />' . "\r\n";
                echo '<div id="mdjm-playlist-container">' . "\r\n";
                echo '<div id="mdjm-playlist-table">' . "\r\n";
                echo '<form action="' . mdjm_get_formatted_url(MDJM_PLAYLIST_PAGE) . 'event_id=' . $this->event->ID . '" method="post" enctype="multipart/form-data" name="client-playlist" id="client-playlist">' . "\r\n";
                wp_nonce_field('manage_playlist', '__mdjm_playlist') . "\r\n";
                echo '<table id="mdjm-playlist-display">' . "\r\n";
                echo '<tr>' . "\r\n";
                echo '<td><label for="playlist_song">' . __('Song Name') . '</label>:<br />' . '<input name="playlist_song" id="playlist_song" type="text" size="25" class="required" /></td>' . "\r\n";
                echo '<td><label for="playlist_artist">' . __('Artist') . '</label>?<br />' . '<input name="playlist_artist" id="playlist_artist" type="text" size="25" class="required" /></td>' . "\r\n";
                echo '<td><label for="playlist_when">' . __('When to Play') . '</label>:<br />' . '<select name="playlist_when" id="playlist_when">' . "\r\n";
                $pl_when = explode("\n", $mdjm_settings['playlist']['playlist_cats']);
                foreach ($pl_when as $when) {
                    echo '<option value="' . $when . '">' . $when . '</option>' . "\r\n";
                }
                // foreach( $pl_when as $when )
                echo '</select></td>' . "\r\n";
                echo '<td><label for="playlist_info">' . __('Info') . '</label>:<br />' . '<textarea name="playlist_info" id="playlist_info" placeholder="Optional: add information if you selected Other from the drop down list">' . '</textarea></td>' . "\r\n";
                echo '</tr>' . "\r\n";
                echo '<tr>' . "\r\n";
                echo '<td colspan="4" style="text-align: left;"><input name="submit" id="submit" type="submit" value="Add Song" /></td>' . "\r\n";
                echo '</tr>' . "\r\n";
                // End the table display
                echo '</table>' . "\r\n";
                echo '</form>' . "\r\n";
                echo '</div>' . "\r\n";
                // End div mdjm-playlist-table
                echo '</div>' . "\r\n";
                // End div mdjm-playlist-container
            } else {
                echo parent::display_notice(1, parent::__text('playlist_closed', '<p>Additions to your playlist are disabled to allow your 
												' . MDJM_DJ . ' to prepare for your event.</p>'));
                if ($num_songs > 0) {
                    echo '<p>' . __('Existing playlist entries are displayed below') . '.</p>';
                }
            }
            /* -- Display existing entries if we have them -- */
            if ($num_songs > 0) {
                // Songs to display
                $categories = MDJM()->events->get_playlist_by_cat($this->event->ID);
                echo '<div id="mdjm_song_container">' . "\r\n";
                foreach ($categories as $category => $songs) {
                    echo '<table class="mdjm_song_table">' . "\r\n";
                    echo '<tr>' . "\r\n";
                    echo '<th colspan="4">' . $category . '</th>' . "\r\n";
                    echo '</tr>' . "\r\n";
                    foreach ($songs as $song) {
                        echo '<tr>' . "\r\n";
                        echo '<td>' . $song->song . '</td>' . "\r\n";
                        echo '<td>' . $song->artist . '</td>' . "\r\n";
                        if ($category == 'Guest Added') {
                            echo '<td>' . $song->added_by . '</td>' . "\r\n";
                        } else {
                            echo '<td>' . (!empty($song->info) ? stripslashes($song->info) : '') . '</td>' . "\r\n";
                        }
                        echo '<td style="text-align: right;"><a href="' . mdjm_get_formatted_url(MDJM_PLAYLIST_PAGE) . 'remove_song=' . $song->id . '">' . __('Remove') . '</a></td>' . "\r\n";
                        echo '</tr>' . "\r\n";
                    }
                    echo '<tr>' . "\r\n";
                    echo '<td colspan="4" style="font-weight: bold; border-top: 2px solid;">' . count($songs) . _n(' Song', ' Songs', count($songs)) . '</td>' . "\r\n";
                    echo '</tr>' . "\r\n";
                    echo '</table>' . "\r\n";
                }
                // End foreach
                echo '</div>' . "\r\n";
                // End div mdjm_song_container
            }
            // if( $num_songs > 0 )
        }
Esempio n. 23
0
/**
 * Output the event transaction list table
 *
 * @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_txn_add_new_row($event_id)
{
    global $mdjm_event, $mdjm_event_update;
    mdjm_insert_datepicker(array('id' => 'mdjm_txn_display_date', 'altfield' => 'mdjm_txn_date', 'maxdate' => 'today'));
    ?>

	<div id="mdjm-event-add-txn-table">
        <table id="mdjm_event_add_txn_table" class="widefat mdjm_event_add_txn_table mdjm_form_fields">
        	<thead>
            	<tr>
            		<th colspan="3"><?php 
    _e('Add Transaction', 'mobile-dj-manager');
    ?>
 <a id="toggle_add_txn_fields" class="mdjm-small mdjm-fake"><?php 
    _e('show form', 'mobile-dj-manager');
    ?>
</a></th>
                </tr>
            </thead>

			<tbody class="mdjm-hidden">
            	<tr>
                	<td><label for="mdjm_txn_amount"><?php 
    _e('Amount:', 'mobile-dj-manager');
    ?>
</label><br />
                    	<?php 
    echo mdjm_currency_symbol() . MDJM()->html->text(array('name' => 'mdjm_txn_amount', 'class' => 'mdjm-input-currency', 'placeholder' => mdjm_sanitize_amount('10')));
    ?>
</td>

					<td><label for="mdjm_txn_display_date"><?php 
    _e('Date:', 'mobile-dj-manager');
    ?>
</label><br />
						<?php 
    echo MDJM()->html->text(array('name' => 'mdjm_txn_display_date', 'class' => '')) . MDJM()->html->hidden(array('name' => 'mdjm_txn_date'));
    ?>
</td>

					<td><label for="mdjm_txn_amount"><?php 
    _e('Direction:', 'mobile-dj-manager');
    ?>
</label><br />
                    	<?php 
    echo MDJM()->html->select(array('name' => 'mdjm_txn_direction', 'options' => array('In' => __('Incoming', 'mobile-dj-manager'), 'Out' => __('Outgoing', 'mobile-dj-manager')), 'show_option_all' => false, 'show_option_none' => false));
    ?>
</td>
                </tr>

				<tr>
                	<td><span id="mdjm_txn_from_container"><label for="mdjm_txn_from"><?php 
    _e('From:', 'mobile-dj-manager');
    ?>
</label><br />
                    	<?php 
    echo MDJM()->html->text(array('name' => 'mdjm_txn_from', 'class' => '', 'placeholder' => __('Leave empty if client', 'mobile-dj-manager')));
    ?>
</span>
                        <span id="mdjm_txn_to_container" class="mdjm-hidden"><label for="mdjm_txn_to"><?php 
    _e('To:', 'mobile-dj-manager');
    ?>
</label><br />
                    	<?php 
    echo MDJM()->html->text(array('name' => 'mdjm_txn_to', 'class' => '', 'placeholder' => __('Leave empty if client', 'mobile-dj-manager')));
    ?>
</span></td>

					<td><label for="mdjm_txn_for"><?php 
    _e('For:', 'mobile-dj-manager');
    ?>
</label><br />
						<?php 
    echo MDJM()->html->txn_type_dropdown();
    ?>
</td>

					<td><label for="mdjm_txn_src"><?php 
    _e('Paid via:', 'mobile-dj-manager');
    ?>
</label><br />
                    	<?php 
    echo MDJM()->html->select(array('name' => 'mdjm_txn_src', 'options' => mdjm_get_txn_source(), 'selected' => mdjm_get_option('default_type', 'Cash'), 'show_option_all' => false, 'show_option_none' => false));
    ?>
</td>
                </tr>

				<?php 
    if (mdjm_get_option('manual_payment_cfm_template')) {
        ?>

                    <tr id="mdjm-txn-email">
                        <td colspan="3"><?php 
        echo MDJM()->html->checkbox(array('name' => 'mdjm_manual_txn_email', 'current' => mdjm_get_option('manual_payment_cfm_template') ? true : false, 'class' => 'mdjm-checkbox'));
        ?>
                            <?php 
        _e('Send manual payment confirmation email?', 'mobile-dj-manager');
        ?>
</td>
                    </tr>

				<?php 
    }
    ?>

            </tbody>
        </table>

    </div>
    
    <p id="save-event-txn" class="mdjm-hidden"><a id="save_transaction" class="button button-primary button-small"><?php 
    _e('Add Transaction', 'mobile-dj-manager');
    ?>
</a></p>
	<?php 
}
Esempio n. 24
0
        public function sign_contract()
        {
            global $mdjm, $my_mdjm, $clientzone, $mdjm_settings;
            /* -- Validate the nonce -- */
            if (!isset($_POST['mdjm_sign_event_contract']) || !wp_verify_nonce($_POST['mdjm_sign_event_contract'], 'sign_event_contract')) {
                echo '<script type="text/javascript">' . "\r\n" . 'alert("WordPress Security Validation failed. Please try again");' . "\r\n" . 'history.back();' . "\r\n" . '</script>' . "\r\n";
            }
            /* -- Check the users password is correct -- */
            $pass_cfm = wp_authenticate($my_mdjm['me']->user_login, $_POST['sign_pass_confirm']);
            /* -- Incorrect Password -- */
            if (is_wp_error($pass_cfm)) {
                echo '<script type="text/javascript">' . "\r\n" . 'alert("ERROR: Your password was not entered correctly. Please try again.");' . "\r\n" . 'history.back();' . "\r\n" . '</script>' . "\r\n";
            } else {
                /* -- Remove the save post hook to avoid loops -- */
                remove_action('save_post_mdjm-event', 'mdjm_save_event_post', 10, 3);
                /* -- Create a new signed contract instance -- */
                $contract_data = array('post_title' => 'Event Contract: ' . MDJM_EVENT_PREFIX . $this->event->ID, 'post_author' => $my_mdjm['me']->ID, 'post_type' => 'mdjm-signed-contract', 'post_status' => 'publish', 'post_parent' => $this->event->ID, 'ping_status' => 'closed', 'comment_status' => 'closed');
                /* -- Prepare the contract content -- */
                $content = $this->event_contract->post_content;
                $content = apply_filters('the_content', $content);
                $content = str_replace(']]>', ']]&gt;', $content);
                /* -- Shortcode replacements -- */
                $contract_data['post_content'] = $mdjm->filter_content($my_mdjm['me']->ID, $this->event->ID, $content);
                /* -- Append Signatory info -- */
                $contract_data['post_content'] .= '<hr>' . "\r\n";
                $contract_data['post_content'] .= '<p style="font-weight: bold">' . __('Signatory') . ': <span style="text-decoration: underline;">' . ucfirst($_POST['sign_first_name']) . ' ' . ucfirst($_POST['sign_last_name']) . '</span></p>' . "\r\n";
                $contract_data['post_content'] .= '<p style="font-weight: bold">' . __('Date of Signature') . ': <span style="text-decoration: underline;">' . date('jS F Y') . '</span></p>' . "\r\n";
                $contract_data['post_content'] .= '<p style="font-weight: bold">' . __('Verification Method') . ': User Password Confirmation</p>' . "\r\n";
                /* -- Create the Signed Contract Post -- */
                $signed_contract = wp_insert_post($contract_data, true);
                // Success
                if (!is_wp_error($signed_contract)) {
                    if (MDJM_DEBUG == true) {
                        MDJM()->debug->log_it('Client event signed contract created (' . $signed_contract . ')', true);
                    }
                    add_post_meta($signed_contract, '_mdjm_contract_signed_name', ucfirst($_POST['sign_first_name']) . ' ' . ucfirst($_POST['sign_last_name']), true);
                    /* -- Update the event -- */
                    $event_meta = array('_mdjm_event_signed_contract' => $signed_contract, '_mdjm_event_contract_approved' => date('Y-m-d H:i:s'), '_mdjm_event_contract_approver' => ucfirst($_POST['sign_first_name']) . ' ' . ucfirst($_POST['sign_last_name']), '_mdjm_event_contract_approver_ip' => $_SERVER['REMOTE_ADDR'], '_mdjm_event_last_updated_by' => $my_mdjm['me']->ID);
                    /* -- Initiate actions for status change -- */
                    wp_transition_post_status('mdjm-approved', $this->event->post_status, $this->event);
                    /* -- Update the post status -- */
                    wp_update_post(array('ID' => $this->event->ID, 'post_status' => 'mdjm-approved'));
                    foreach ($event_meta as $event_meta_key => $event_meta_value) {
                        update_post_meta($this->event->ID, $event_meta_key, $event_meta_value);
                    }
                    /* -- Update Journal with event updates -- */
                    if (MDJM_JOURNAL == true) {
                        if (MDJM_DEBUG == true) {
                            MDJM()->debug->log_it('	-- Adding journal entry');
                        }
                        mdjm_add_journal(array('user_id' => $my_mdjm['me']->ID, 'event_id' => $this->event->ID, 'comment_content' => 'Contract Approval completed by ' . ucfirst($_POST['sign_first_name']) . ' ' . ucfirst($_POST['sign_last_name'] . '<br>')), array('type' => 'update-event', 'visibility' => '2'));
                    } else {
                        if (MDJM_DEBUG == true) {
                            MDJM()->debug->log_it('	-- Journalling is disabled');
                        }
                    }
                    /* -- Email booking confirmations -- */
                    $contact_client = isset($mdjm_settings['templates']['booking_conf_to_client']) ? true : false;
                    $contact_dj = isset($mdjm_settings['templates']['booking_conf_to_dj']) ? true : false;
                    $client_email = isset($mdjm_settings['templates']['booking_conf_client']) ? $mdjm_settings['templates']['booking_conf_client'] : false;
                    $dj_email = isset($mdjm_settings['templates']['email_dj_confirm']) ? $mdjm_settings['templates']['email_dj_confirm'] : false;
                    if (!is_string(get_post_status($client_email))) {
                        if (MDJM_DEBUG == true) {
                            MDJM()->debug->log_it('ERROR: No email template for the contract has been found ' . __FUNCTION__, $stampit = true);
                        }
                        wp_die('ERROR: Either no email template is defined or an error has occured. Check your Settings.');
                    }
                    if ($contact_client == true) {
                        if (MDJM_DEBUG == true) {
                            MDJM()->debug->log_it('Configured to email client with template ID ' . $client_email);
                        }
                        if (MDJM_DEBUG == true) {
                            MDJM()->debug->log_it('Generating email...');
                        }
                        $email_args = array('content' => $client_email, 'to' => get_post_meta($this->event->ID, '_mdjm_event_client', true), 'from' => $mdjm_settings['templates']['booking_conf_from'] == 'dj' ? get_post_meta($this->event->ID, '_mdjm_event_dj', true) : 0, 'journal' => 'email-client', 'event_id' => $this->event->ID, 'html' => true, 'cc_dj' => isset($mdjm_settings['email']['bcc_dj_to_client']) ? true : false, 'cc_admin' => isset($mdjm_settings['email']['bcc_admin_to_client']) ? true : false, 'source' => 'Event Status to Approved');
                        // Filter the email args
                        $email_args = apply_filters('mdjm_booking_conf_email_args', $email_args);
                        // Send the email
                        $approval_email = $mdjm->send_email($email_args);
                        if ($approval_email) {
                            if (MDJM_DEBUG == true) {
                                MDJM()->debug->log_it('	-- Confrmation email sent to client ');
                            }
                        } else {
                            if (MDJM_DEBUG == true) {
                                MDJM()->debug->log_it('	ERROR: Confrmation email was not sent');
                            }
                        }
                    } else {
                        if (MDJM_DEBUG == true) {
                            MDJM()->debug->log_it('Not configured to email client');
                        }
                    }
                    if ($contact_dj == true) {
                        if (MDJM_DEBUG == true) {
                            MDJM()->debug->log_it('Configured to email DJ with template ID ' . $dj_email);
                        }
                        if (MDJM_DEBUG == true) {
                            MDJM()->debug->log_it('Generating email...');
                        }
                        $approval_dj_email = $mdjm->send_email(array('content' => $dj_email, 'to' => get_post_meta($this->event->ID, '_mdjm_event_dj', true), 'from' => 0, 'journal' => 'email-dj', 'event_id' => $this->event->ID, 'html' => true, 'cc_dj' => false, 'cc_admin' => isset($mdjm_settings['email']['bcc_admin_to_dj']) ? true : false, 'source' => 'Event Status to Approved'));
                        if ($approval_dj_email) {
                            if (MDJM_DEBUG == true) {
                                MDJM()->debug->log_it('	-- Approval email sent to DJ ');
                            }
                        } else {
                            if (MDJM_DEBUG == true) {
                                MDJM()->debug->log_it('	ERROR: Approval email was not sent to DJ');
                            }
                        }
                    } else {
                        if (MDJM_DEBUG == true) {
                            MDJM()->debug->log_it('Not configured to email DJ');
                        }
                    }
                }
                /* -- Re-add the save post hook -- */
                add_action('save_post_mdjm-event', 'mdjm_save_event_post', 10, 3);
                if (MDJM_DEBUG == true) {
                    MDJM()->debug->log_it('Completed client signing of contract ' . __METHOD__, true);
                }
                /* -- Email admin to notify of changes -- */
                if (MDJM_NOTIFY_ADMIN == true) {
                    if (MDJM_DEBUG == true) {
                        MDJM()->debug->log_it('Sending event status change notification to admin (Contract Signed)');
                    }
                    $content = '<html>' . "\n" . '<body>' . "\n";
                    $content .= '<p>' . sprintf(__('Good news... %s has just signed their event contract via %s', 'mobile-dj-manager'), '{CLIENT_FULLNAME}', MDJM_APP) . '</p>';
                    $content .= '<hr />' . "\n";
                    $content .= '<h4><a href="' . get_edit_post_link($this->event->ID) . '">' . __('Event ID', 'mobile-dj-manager') . ': ' . MDJM_EVENT_PREFIX . $this->event->ID . '</a></h4>' . "\n";
                    $content .= '<p>' . "\n";
                    $content .= __('Date', 'mobile-dj-manager') . ': {EVENT_DATE}<br />' . "\n";
                    $content .= __('Type', 'mobile-dj-manager') . ': ' . MDJM()->events->get_event_type($this->event->ID) . '<br />' . "\n";
                    $event_stati = mdjm_all_event_status();
                    $content .= __('Status', 'mobile-dj-manager') . ': ' . $event_stati[get_post_status($this->event->ID)] . '<br />' . "\n";
                    $content .= __('Client', 'mobile-dj-manager') . ': {CLIENT_FULLNAME}<br />' . "\n";
                    $content .= __('Value', 'mobile-dj-manager') . ': {TOTAL_COST}<br />' . "\n";
                    $deposit = get_post_meta($this->event->ID, '_mdjm_event_deposit');
                    $deposit_status = get_post_meta($this->event->ID, '_mdjm_event_deposit_status');
                    if (!empty($deposit) && $deposit != '0.00') {
                        $content .= __('Deposit', 'mobile-dj-manager') . ': {DEPOSIT} ({DEPOSIT_STATUS})<br />' . "\n";
                    }
                    $content .= __('Balance Due', 'mobile-dj-manager') . ': {BALANCE}</p>' . "\n";
                    $content .= '<p>' . sprintf(__('%sView Event%s', 'mobile-dj-manager'), '<a href="=' . get_edit_post_link($this->event->ID) . '">', '</a>') . '</p>' . "\n";
                    $content .= '</body>' . "\n" . '</html>' . "\n";
                    $mdjm->send_email(array('content' => $mdjm->filter_content(get_post_meta($this->event->ID, '_mdjm_event_client', true), $this->event->ID, $content), 'to' => $mdjm_settings['email']['system_email'], 'subject' => __('Event Contract Signed', 'mobile-dj-manager'), 'journal' => false, 'event_id' => $this->event->ID, 'cc_dj' => false, 'cc_admin' => false, 'filter' => false, 'log_comm' => false));
                } else {
                    if (MDJM_DEBUG == true) {
                        MDJM()->debug->log_it('Skipping admin notification');
                    }
                }
                ?>
					<script type="text/javascript">
                    window.location.replace("<?php 
                echo mdjm_get_formatted_url(MDJM_CONTRACT_PAGE) . 'event_id=' . $this->event->ID . '&message=3&class=2';
                ?>
");
                    </script>
                    <?php 
                exit;
            }
        }
Esempio n. 25
0
/**
 * Refresh the addons options when the package selection is updated.
 *
 * @since	1.3.7
 * @return	void
 */
function mdjm_refresh_event_addon_options_ajax()
{
    $package = $_POST['package'];
    $employee = isset($_POST['employee']) ? $_POST['employee'] : false;
    $selected = !empty($_POST['selected']) ? $_POST['selected'] : array();
    $event_type = !empty($_POST['event_type']) ? $_POST['event_type'] : '';
    $event_date = !empty($_POST['event_date']) ? $_POST['event_date'] : '';
    $addons = MDJM()->html->addons_dropdown(array('selected' => $selected, 'show_option_none' => false, 'show_option_all' => false, 'employee' => $employee, 'event_type' => $event_type, 'event_date' => $event_date, 'package' => $package, 'cost' => true, 'placeholder' => __('Select Add-ons', 'mobile-dj-manager'), 'chosen' => true, 'options_only' => true, 'data' => array()));
    $result['type'] = 'success';
    if (!empty($addons)) {
        $result['addons'] = $addons;
    } else {
        $result['addons'] = '<option value="0" disabled="disabled">' . __('No addons available', 'mobile-dj-manager') . '</option>';
    }
    echo json_encode($result);
    die;
}
Esempio n. 26
0
 /**
  * Creates a transaction
  *
  * @since 	1.3
  * @param 	arr		$data Array of attributes for a transaction. See $defaults.
  * @return	mixed	false if data isn't passed and class not instantiated for creation, or New Transaction ID
  */
 public function create($data = array(), $meta = array())
 {
     if ($this->id != 0) {
         return false;
     }
     remove_action('save_post_mdjm-transaction', 'mdjm_save_txn_post', 10, 3);
     $default_data = array('post_type' => 'mdjm-transaction', 'post_status' => 'mdjm-income', 'post_title' => __('New Transaction', 'mobile-dj-manager'), 'post_content' => '');
     $default_meta = array('_mdjm_txn_source' => mdjm_get_option('default_type', __('Cash')), '_mdjm_txn_currency' => mdjm_get_currency(), '_mdjm_txn_status' => 'Pending');
     $data = wp_parse_args($data, $default_data);
     $meta = wp_parse_args($meta, $default_meta);
     do_action('mdjm_pre_txn_create', $data, $meta);
     $id = wp_insert_post($data, true);
     if (is_wp_error($id)) {
         MDJM()->debug->log_it('ERROR: ' . $id->get_error_message());
     }
     $txn = WP_Post::get_instance($id);
     if ($txn) {
         mdjm_update_txn_meta($txn->ID, $meta);
         wp_update_post(array('ID' => $id, 'post_title' => mdjm_get_option('event_prefix') . $id, 'post_name' => mdjm_get_option('event_prefix') . $id));
     }
     do_action('mdjm_post_txn_create', $id, $data, $meta);
     add_action('save_post_mdjm-transaction', 'mdjm_save_txn_post', 10, 3);
     return $this->setup_txn($txn);
 }
Esempio n. 27
0
 function update_event()
 {
     global $mdjm, $post, $my_mdjm, $clientzone;
     $post = get_post($_POST['event_id']);
     $eventinfo = MDJM()->events->event_detail($post->ID);
     if (MDJM_DEBUG == true) {
         MDJM()->debug->log_it('Event ID ' . $post->ID . ' is being updated by ' . $eventinfo['client']->display_name, true);
     }
     // Prepare the meta data
     $event_data['_mdjm_event_last_updated_by'] = $my_mdjm['me']->ID;
     $event_data['_mdjm_event_name'] = !empty($_POST['_mdjm_event_name']) ? sanitize_text_field($_POST['_mdjm_event_name']) : get_term($_POST['mdjm_event_type'], 'event-types')->name;
     $event_data['_mdjm_event_package'] = !empty($_POST['_mdjm_event_package']) ? $_POST['_mdjm_event_package'] : '';
     $event_data['_mdjm_event_addons'] = !empty($_POST['event_addons']) ? $_POST['event_addons'] : '';
     $event_data['_mdjm_event_notes'] = !empty($_POST['_mdjm_event_notes']) ? sanitize_text_field($_POST['_mdjm_event_notes']) : '';
     /* -- Assign the event type -- */
     $existing_event_type = wp_get_object_terms($post->ID, 'event-types');
     if (!isset($existing_event_type[0]) || $existing_event_type[0]->term_id != $_POST['mdjm_event_type']) {
         $field_updates[] = 'Event Type changed from ' . $existing_event_type[0]->name . ' to ' . get_term($_POST['mdjm_event_type'], 'event-types')->name;
         MDJM()->events->mdjm_assign_event_type($_POST['mdjm_event_type']);
     }
     // Event Times
     if (date('H:i', strtotime($_POST['event_start_hr'] . ':' . $_POST['event_start_min'])) != $eventinfo['start']) {
         if (MDJM_DEBUG == true) {
             MDJM()->debug->log_it('Event start time updating to ' . $_POST['event_start_hr'] . ':' . $_POST['event_start_min']);
         }
         $event_data['_mdjm_event_start'] = MDJM_TIME_FORMAT == 'H:i' ? date('H:i:s', strtotime($_POST['event_start_hr'] . ':' . $_POST['event_start_min'])) : date('H:i:s', strtotime($_POST['event_start_hr'] . ':' . $_POST['event_start_min'] . isset($_POST['event_start_period']) ? $_POST['event_start_period'] : ''));
     }
     if (date('H:i', strtotime($_POST['event_finish_hr'] . ':' . $_POST['event_finish_min'])) != $eventinfo['finish']) {
         if (MDJM_DEBUG == true) {
             MDJM()->debug->log_it('Event finish time updating to ' . $_POST['event_finish_hr'] . ':' . $_POST['event_finish_min']);
         }
         $event_data['_mdjm_event_finish'] = MDJM_TIME_FORMAT == 'H:i' ? date('H:i:s', strtotime($_POST['event_finish_hr'] . ':' . $_POST['event_finish_min'])) : date('H:i:s', strtotime($_POST['event_finish_hr'] . ':' . $_POST['event_finish_min'] . isset($_POST['event_finish_period']) ? $_POST['event_finish_period'] : ''));
     }
     remove_action('save_post_mdjm-event', 'mdjm_save_event_post', 10, 3);
     // Update event
     wp_update_post(array('ID' => $post->ID));
     // Update meta
     foreach ($event_data as $event_meta_key => $event_meta_value) {
         /* -- If we have a value and the key did not exist previously, add it -- */
         if (!empty($event_meta_value) && '' == get_post_meta($post->ID, $event_meta_key, true)) {
             add_post_meta($post->ID, $event_meta_key, $event_meta_value);
             $field_updates[] = 'Field ' . $event_meta_key . ' added: ' . is_array($event_meta_value) ? implode('<br />', $event_meta_value) : $event_meta_value;
         } elseif (!empty($event_meta_value) && $event_meta_value != get_post_meta($post->ID, $event_meta_key, true)) {
             update_post_meta($post->ID, $event_meta_key, $event_meta_value);
             $field_updates[] = 'Field ' . $event_meta_key . ' updated: ' . get_post_meta($post->ID, $event_meta_key, true) . ' replaced with ' . $event_meta_value;
         } elseif ('' == $event_meta_value && get_post_meta($post->ID, $event_meta_key, true)) {
             delete_post_meta($post->ID, $event_meta_key, $event_meta_value);
             $field_updates[] = 'Field ' . $event_meta_key . ' updated: ' . get_post_meta($post->ID, $event_meta_key, true) . ' removed';
         }
         // Log changes to debug file
         if (MDJM_DEBUG == true && !empty($field_updates)) {
             MDJM()->debug->log_it('Event Updates Completed     ' . "\r\n" . '| ' . implode("\r\n" . '     | ', $field_updates));
         }
     }
     add_action('save_post_mdjm-event', 'mdjm_save_event_post', 10, 3);
     // Update journal
     mdjm_add_journal(array('user_id' => $my_mdjm['me']->ID, 'event_id' => $post->ID, 'comment_content' => $my_mdjm['me']->display_name . ' updated event - ' . $post->ID . '<br />(' . time() . ')'), array('type' => 'update-event', 'visibility' => '1'));
     $clientzone->display_notice('2', 'Your event details have been updated successfully');
 }
Esempio n. 28
0
/**
 * Admin Messages
 *
 * @since	1.3
 * @global	$mdjm_options	Array of all the MDJM Options
 * @return void
 */
function mdjm_admin_notices()
{
    global $mdjm_options;
    // Unattended events
    if (mdjm_employee_can('manage_all_events') && mdjm_get_option('warn_unattended')) {
        $unattended = MDJM()->events->mdjm_count_event_status('mdjm-unattended');
        if (!empty($unattended) && $unattended > 0) {
            echo '<div class="notice notice-info is-dismissible">';
            echo '<p>' . sprintf(__('You have unattended enquiries. <a href="%s">Click here</a> to manage.', 'mobile-dj-manager'), admin_url('edit.php?post_type=mdjm-event&post_status=mdjm-unattended')) . '</p>';
            echo '</div>';
        }
    }
    if (isset($_GET['mdjm-message']) && 'upgrade-completed' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-upgraded', __('MDJM Event Management has been upgraded successfully.', 'mobile-dj-manager'), 'updated');
    }
    if (isset($_GET['mdjm-message']) && 'song_added' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-added-song', __('Entry added to playlist.', 'mobile-dj-manager'), 'updated');
    }
    if (isset($_GET['mdjm-message']) && 'adding_song_failed' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-adding-song-failed', __('Could not add entry to playlist.', 'mobile-dj-manager'), 'error');
    }
    if (isset($_GET['mdjm-message']) && 'song_removed' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-removed-song', __('The selected songs were removed.', 'mobile-dj-manager'), 'updated');
    }
    if (isset($_GET['mdjm-message']) && 'song_remove_failed' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-remove-faled', __('The songs count not be removed.', 'mobile-dj-manager'), 'error');
    }
    if (isset($_GET['mdjm-message']) && 'security_failed' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-security-failed', __('Security verification failed. Action not completed.', 'mobile-dj-manager'), 'error');
    }
    if (isset($_GET['mdjm-message']) && 'playlist_emailed' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-playlist-emailed', __('The playlist was emailed successfully.', 'mobile-dj-manager'), 'updated');
    }
    if (isset($_GET['mdjm-message']) && 'playlist_email_failed' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-playlist-email-failed', __('The playlist could not be emailed.', 'mobile-dj-manager'), 'error');
    }
    if (isset($_GET['mdjm-message']) && 'employee_added' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-employee_added', __('Employee added.', 'mobile-dj-manager'), 'updated');
    }
    if (isset($_GET['mdjm-message']) && 'employee_add_failed' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-employee_add-failed', __('Could not add employee.', 'mobile-dj-manager'), 'updated');
    }
    if (isset($_GET['mdjm-message']) && 'employee_info_missing' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-employee_info-missing', __('Insufficient information to create employee.', 'mobile-dj-manager'), 'error');
    }
    if (isset($_GET['mdjm-message']) && 'comm_missing_content' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-comm_content-missing', __('Not all required fields have been completed.', 'mobile-dj-manager'), 'error');
    }
    if (isset($_GET['mdjm-message']) && 'comm_sent' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-comm_sent', __('Email sent successfully.', 'mobile-dj-manager'), 'updated');
    }
    if (isset($_GET['mdjm-message']) && 'comm_not_sent' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-comm_not_sent', __('Email not sent.', 'mobile-dj-manager'), 'error');
    }
    if (isset($_GET['mdjm-action']) && 'get_event_availability' == $_GET['mdjm-action']) {
        if (!wp_verify_nonce($_GET['mdjm_nonce'], 'get_event_availability')) {
            return;
        } elseif (!isset($_GET['event_id'])) {
            return;
        } else {
            $date = get_post_meta($_GET['event_id'], '_mdjm_event_date', true);
            $result = mdjm_do_availability_check($date);
            if (!empty($result['available'])) {
                $notice = '<ul>';
                foreach ($result['available'] as $employee_id) {
                    $notice .= '<li>' . sprintf(__('<a href="%s" title="Assign &amp; Respond to Enquiry">Assign %s &amp; respond to enquiry</a>', 'mobile-dj-manager'), add_query_arg('primary_employee', $employee_id, get_edit_post_link($_GET['event_id'])), mdjm_get_employee_display_name($employee_id)) . '</li>';
                }
                $notice .= '</ul>';
                echo '<div class="notice notice-info is-dismissible">';
                echo '<p>' . sprintf(__('You have %d employees available to work %s %s on %s.', 'mobile-dj-manager'), count($result['available']), mdjm_get_label_singular(true), mdjm_get_event_contract_id($_GET['event_id']), mdjm_get_event_long_date($_GET['event_id'])) . $notice . '</p>';
                echo '</div>';
            } else {
                echo '<div class="notice notice-error is-dismissible">';
                echo '<p>' . sprintf(__('There are no employees available to work %s %s on %s', 'mobile-dj-manager'), mdjm_get_label_singular(true), mdjm_get_event_contract_id($_GET['event_id']), mdjm_get_event_long_date($_GET['event_id'])) . '</p>';
                echo '</div>';
            }
        }
    }
    if (isset($_GET['mdjm-message']) && 'payment_event_missing' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-payment_event_missing', __('Event not identified.', 'mobile-dj-manager'), 'error');
    }
    if (isset($_GET['mdjm-message']) && 'pay_employee_failed' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-payment_employee_failed', __('Unable to make payment to employee.', 'mobile-dj-manager'), 'error');
    }
    if (isset($_GET['mdjm-message']) && 'pay_all_employees_failed' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-payment_employees_failed', __('Unable to make payment to employees.', 'mobile-dj-manager'), 'error');
    }
    if (isset($_GET['mdjm-message']) && 'pay_all_employees_some_success' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-payment_all_employees_some_success', __('Not all employees could be paid.', 'mobile-dj-manager'), 'notice-info');
    }
    if (isset($_GET['mdjm-message']) && 'pay_employee_success' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-payment_employeee_success', __('Employee successfully paid.', 'mobile-dj-manager'), 'updated');
    }
    if (isset($_GET['mdjm-message']) && 'pay_all_employees_success' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-payment_all_employeees_success', __('Employees successfully paid.', 'mobile-dj-manager'), 'updated');
    }
    if (isset($_GET['mdjm-message']) && 'unattended_enquiries_rejected_success' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-unattended_enquiries_rejected_success', sprintf(_n('%1$s %2$s successfully rejected.', '%1$s %3$s successfully rejected.', $_GET['mdjm-count'], 'mobile-dj-manager'), $_GET['mdjm-count'], mdjm_get_label_singular(), mdjm_get_label_plural()), 'updated');
    }
    if (isset($_GET['mdjm-message']) && 'unattended_enquiries_rejected_failed' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-unattended_enquiries_rejected_failed', __('Errors were encountered.', 'mobile-dj-manager'), 'error');
    }
    if (isset($_GET['mdjm-message']) && 'api-key-generated' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-api-key-generated', __('API keys generated.', 'mobile-dj-manager'), 'updated');
    }
    if (isset($_GET['mdjm-message']) && 'api-key-regenerated' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-api-key-regenerated', __('API keys re-generated.', 'mobile-dj-manager'), 'updated');
    }
    if (isset($_GET['mdjm-message']) && 'api-key-revoked' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-api-key-revoked', __('API keys revoked.', 'mobile-dj-manager'), 'updated');
    }
    if (isset($_GET['mdjm-message']) && 'api-key-failed' == $_GET['mdjm-message']) {
        add_settings_error('mdjm-notices', 'mdjm-api-key-failed', __('Generating API keys failed.', 'mobile-dj-manager'), 'error');
    }
    settings_errors('mdjm-notices');
}
Esempio n. 29
0
 function update_event_quote($event_id, $quote_id)
 {
     // If the current user is not the client, do not log
     if (get_post_meta($event_id, '_mdjm_event_client', true) != get_current_user_id()) {
         return;
     }
     /* -- Initiate actions for status change -- */
     wp_transition_post_status('mdjm-quote-viewed', 'mdjm-quote-generated', get_post($quote_id));
     if (MDJM_DEBUG == true) {
         MDJM()->debug->log_it('Setting quote to viewed status for quote ' . $quote_id . ' event ' . $event_id, true);
     }
     /* -- Update the post status -- */
     if (wp_update_post(array('ID' => $quote_id, 'post_status' => 'mdjm-quote-viewed'))) {
         if (MDJM_DEBUG == true) {
             MDJM()->debug->log_it('Quote status updated successfully', false);
         }
         $result = true;
     }
     /* -- Set post meta for read time and update the number of client views -- */
     if ($result == true) {
         if (MDJM_DEBUG == true) {
             MDJM()->debug->log_it('Updating quote view count', false);
         }
         $view_count = get_post_meta($quote_id, '_mdjm_quote_viewed_count', true);
         if (!empty($view_count)) {
             $view_count++;
         } else {
             $view_count = 1;
         }
         update_post_meta($quote_id, '_mdjm_quote_viewed_count', $view_count);
         // Only update the view date if this is the first viewing
         if ($view_count == 1) {
             if (MDJM_DEBUG == true) {
                 MDJM()->debug->log_it('Updating quote viewed time', false);
             }
             update_post_meta($quote_id, '_mdjm_quote_viewed_date', current_time('mysql'));
         }
     }
     return !empty($result) ? true : false;
 }
 /**
  * Performs the key query
  *
  * @access	public
  * @since	1.4
  * @return	void
  */
 public function query()
 {
     $users = get_users(array('meta_value' => 'mdjm_user_secret_key', 'number' => $this->per_page, 'offset' => $this->per_page * ($this->get_paged() - 1)));
     $keys = array();
     foreach ($users as $user) {
         $keys[$user->ID]['id'] = $user->ID;
         $keys[$user->ID]['email'] = $user->user_email;
         $keys[$user->ID]['user'] = '******' . add_query_arg('user_id', $user->ID, 'user-edit.php') . '"><strong>' . $user->user_login . '</strong></a>';
         $keys[$user->ID]['key'] = MDJM()->api->get_user_public_key($user->ID);
         $keys[$user->ID]['secret'] = MDJM()->api->get_user_secret_key($user->ID);
         $keys[$user->ID]['token'] = MDJM()->api->get_token($user->ID);
     }
     return $keys;
 }