/** * MDJM Contract Shortcode. * * Displays the MDJM contract page to allow the client to review and sign their event contract. * * @since 1.3 * * @return string */ function mdjm_shortcode_contract($atts) { if (isset($_GET['event_id']) && mdjm_event_exists($_GET['event_id'])) { if (is_user_logged_in()) { global $mdjm_event; $mdjm_event = new MDJM_Event($_GET['event_id']); $status = !$mdjm_event->get_contract_status() ? '' : 'signed'; if ($mdjm_event) { ob_start(); mdjm_get_template_part('contract', $status); // Do not replace tags in a signed contract if ($status == 'signed') { $output = mdjm_do_content_tags(ob_get_contents(), $mdjm_event->ID, $mdjm_event->client); } else { $output = mdjm_do_content_tags(ob_get_contents(), $mdjm_event->ID, $mdjm_event->client); } ob_get_clean(); } else { return sprintf(__("Ooops! There seems to be a slight issue and we've been unable to find your %s.", 'mobile-dj-manager'), mdjm_get_label_singular(true)); } // Reset global var $mdjm_event = ''; return $output; } else { echo mdjm_login_form(mdjm_get_current_page_url()); } } else { return sprintf(__("Ooops! There seems to be a slight issue and we've been unable to find your %s.", 'mobile-dj-manager'), mdjm_get_label_singular(true)); } }
/** * Displays the signed contract for review. * * @since 1.3.6 * @param int $event_id The event ID. * @return void */ function mdjm_review_signed_contract() { if (empty($_GET['mdjm_action'])) { return; } if ('review_contract' !== $_GET['mdjm_action']) { return; } if (!mdjm_employee_can('manage_events')) { return; } $mdjm_event = new MDJM_Event($_GET['event_id']); if (!mdjm_is_admin()) { if (!array_key_exists(get_current_user_id(), $mdjm_event->get_all_employees())) { return; } } if (!$mdjm_event->get_contract_status()) { printf(__('The contract for this %s is not signed', 'mobile-dj-manager'), mdjm_get_label_singular()); exit; } $contract_id = $mdjm_event->get_contract(); if (empty($contract_id)) { return; } echo mdjm_show_contract($contract_id, $mdjm_event); exit; }
/** * Determine if the event contract is signed. * * @since 1.3 * @param $event_id The event ID. * @return int|bool The signed contracted post ID or false if not signed yet. */ function mdjm_contract_is_signed($event_id) { $event = new MDJM_Event($event_id); return $event->get_contract_status(); }