/** * Output the event price row * * @since 1.3.7 * @global obj $mdjm_event MDJM_Event class object * @global bool $mdjm_event_update True if this event is being updated, false if new. * @param int $event_id The event ID. * @return str */ function mdjm_event_metabox_details_price_row($event_id) { global $mdjm_event, $mdjm_event_update; if (mdjm_employee_can('edit_txns')) { ?> <span id="mdjm-price-loader" class="mdjm-loader mdjm-hidden"><img src="<?php echo MDJM_PLUGIN_URL . '/assets/images/loading.gif'; ?> " /></span> <div id="mdjm-event-price-row" class="mdjm_field_wrap mdjm_form_fields"> <div class="mdjm_col col2"> <label for="_mdjm_event_deposit"><?php _e('Total Cost:', 'mobile-dj-manager'); ?> </label><br /> <?php echo mdjm_currency_symbol() . MDJM()->html->text(array('name' => '_mdjm_event_cost', 'class' => 'mdjm-currency', 'placeholder' => mdjm_sanitize_amount('0.00'), 'value' => !empty($mdjm_event->price) ? mdjm_sanitize_amount($mdjm_event->price) : '')); ?> </div> <div class="mdjm_col col2"> <label for="_mdjm_event_deposit"><?php _e('Deposit:', 'mobile-dj-manager'); ?> </label><br /> <?php echo mdjm_currency_symbol() . MDJM()->html->text(array('name' => '_mdjm_event_deposit', 'class' => 'mdjm-currency', 'placeholder' => mdjm_sanitize_amount('0.00'), 'value' => $mdjm_event_update ? mdjm_sanitize_amount($mdjm_event->deposit) : mdjm_calculate_deposit($mdjm_event->price))); ?> </div> </div> <?php } else { ?> <?php echo MDJM()->html->hidden(array('name' => '_mdjm_event_cost', 'value' => !empty($mdjm_event->price) ? mdjm_sanitize_amount($mdjm_event->price) : '')); ?> <?php echo MDJM()->html->hidden(array('name' => '_mdjm_event_deposit', 'value' => $mdjm_event_update ? mdjm_sanitize_amount($mdjm_event->deposit) : '')); ?> <?php } }
/** * Update the event deposit amount based upon the event cost * and the payment settings. * * @since 1.0 * @return void */ function mdjm_update_event_deposit_ajax() { $event_cost = $_POST['current_cost']; $deposit = mdjm_calculate_deposit($event_cost); if (!empty($deposit)) { $result['type'] = 'success'; $result['deposit'] = mdjm_sanitize_amount($deposit); } else { $result['type'] = 'error'; $result['msg'] = 'Unable to calculate deposit'; } $result = json_encode($result); echo $result; die; }
/** * Creates an event * * @since 1.3 * @param arr $data Array of attributes for an event. See $defaults. * @return mixed false if data isn't passed and class not instantiated for creation, or New Event ID */ public function create($data = array(), $meta = array()) { if ($this->id != 0) { return false; } remove_action('save_post_mdjm-event', 'mdjm_save_event_post', 10, 3); $defaults = array('post_type' => 'mdjm-event', 'post_author' => 1, 'post_content' => '', 'post_status' => 'mdjm-enquiry', 'post_title' => __('New Event', 'mobile-dj-manager')); $default_meta = array('_mdjm_event_date' => date('Y-m-d'), '_mdjm_event_dj' => !mdjm_get_option('employer') ? 1 : 0, '_mdjm_event_playlist_access' => mdjm_generate_playlist_guest_code(), '_mdjm_event_playlist' => mdjm_get_option('enable_playlists') ? 'Y' : 'N', '_mdjm_event_contract' => mdjm_get_default_event_contract(), '_mdjm_event_cost' => 0, '_mdjm_event_deposit' => 0, '_mdjm_event_deposit_status' => __('Due', 'mobile-dj-manager'), '_mdjm_event_balance_status' => __('Due', 'mobile-dj-manager'), 'mdjm_event_type' => mdjm_get_option('event_type_default'), 'mdjm_enquiry_source' => mdjm_get_option('enquiry_source_default'), '_mdjm_event_venue_id' => 'Manual'); $data = wp_parse_args($data, $defaults); $meta = wp_parse_args($meta, $default_meta); do_action('mdjm_event_pre_create', $data, $meta); $id = wp_insert_post($data, true); $event = WP_Post::get_instance($id); if ($event) { if (!empty($meta['mdjm_event_type'])) { mdjm_set_event_type($event->ID, $meta['mdjm_event_type']); $meta['_mdjm_event_name'] = get_term($meta['mdjm_event_type'], 'event-types')->name; $meta['_mdjm_event_name'] = apply_filters('mdjm_event_name', $meta['_mdjm_event_name'], $id); } if (!empty($meta['mdjm_enquiry_source'])) { mdjm_set_enquiry_source($event->ID, $meta['mdjm_enquiry_source']); } if (!empty($meta['_mdjm_event_start']) && !empty($meta['_mdjm_event_finish'])) { if (date('H', strtotime($meta['_mdjm_event_finish'])) > date('H', strtotime($meta['_mdjm_event_start']))) { $meta['_mdjm_event_end_date'] = $meta['_mdjm_event_date']; } else { $meta['_mdjm_event_end_date'] = date('Y-m-d', strtotime('+1 day', strtotime($meta['_mdjm_event_date']))); } } if (!empty($meta['_mdjm_event_package'])) { $meta['_mdjm_event_cost'] += mdjm_get_package_price($meta['_mdjm_event_package'], $meta['_mdjm_event_date']); } if (!empty($meta['_mdjm_event_addons'])) { foreach ($meta['_mdjm_event_addons'] as $addon) { $meta['_mdjm_event_cost'] += mdjm_get_addon_price($addon); } } if (empty($meta['_mdjm_event_deposit'])) { $meta['_mdjm_event_deposit'] = mdjm_calculate_deposit($meta['_mdjm_event_cost']); } mdjm_update_event_meta($event->ID, $meta); wp_update_post(array('ID' => $id, 'post_title' => mdjm_get_event_contract_id($id), 'post_name' => mdjm_get_event_contract_id($id))); } do_action('mdjm_event_post_create', $id, $data); add_action('save_post_mdjm-event', 'mdjm_save_event_post', 10, 3); return $this->setup_event($event); }