/** * Handle the form when the preview page is submitted */ public static function preview_handler() { if (!$_POST) { return; } if (version_compare(JOB_MANAGER_VERSION, '1.22.0', '<')) { // Edit = show submit form again if (!empty($_POST['edit_job'])) { WP_Job_Manager_Form_Submit_Job::previous_step(); } // Continue to the next step if (!empty($_POST['continue'])) { $job = get_post(WP_Job_Manager_Form_Submit_Job::get_job_id()); // Update job status to pending_payment if ($job->post_status == 'preview') { $update_job = array(); $update_job['ID'] = $job->ID; $update_job['post_status'] = 'pending_payment'; wp_update_post($update_job); } // If we're already chosen a package, apply its properties to the job here and add to cart if ('before' === get_option('job_manager_paid_listings_flow')) { // Validate Selected Package $validation = self::validate_package(self::$package_id, self::$is_user_package); if (is_wp_error($validation)) { WP_Job_Manager_Form_Submit_Job::add_error($validation->get_error_message()); WP_Job_Manager_Form_Submit_Job::previous_step(); WP_Job_Manager_Form_Submit_Job::previous_step(); return; } self::process_package(self::$package_id, self::$is_user_package, WP_Job_Manager_Form_Submit_Job::get_job_id()); WP_Job_Manager_Form_Submit_Job::next_step(); // Proceeed to the choose package step if the above did not redirect } else { WP_Job_Manager_Form_Submit_Job::next_step(); } } } else { $form = WP_Job_Manager_Form_Submit_Job::instance(); // Edit = show submit form again if (!empty($_POST['edit_job'])) { $form->previous_step(); } // Continue to the next step if (!empty($_POST['continue'])) { $job = get_post($form->get_job_id()); // Update job status to pending_payment if ($job->post_status == 'preview') { $update_job = array(); $update_job['ID'] = $job->ID; $update_job['post_status'] = 'pending_payment'; wp_update_post($update_job); } // If we're already chosen a package, apply its properties to the job here and add to cart if ('before' === get_option('job_manager_paid_listings_flow')) { // Validate Selected Package $validation = self::validate_package(self::$package_id, self::$is_user_package); if (is_wp_error($validation)) { $form->add_error($validation->get_error_message()); $form->previous_step(); $form->previous_step(); return; } self::process_package(self::$package_id, self::$is_user_package, $form->get_job_id()); $form->next_step(); // Proceeed to the choose package step if the above did not redirect } else { $form->next_step(); } } } }
/** * Preview View * * The default "Preview" view in WP Job Manager adds a little extra and doesn't * use the exact template file that displays what we need. Override it here. * * @since Jobify 1.6.0 * * @return void */ function jobify_preview_handler() { global $job_manager, $post; if (version_compare(JOB_MANAGER_VERSION, '1.22.0', '<')) { $job_id = WP_Job_Manager_Form_Submit_Job::get_job_id(); $step = WP_Job_Manager_Form_Submit_Job::get_step(); $form_name = WP_Job_Manager_Form_Submit_Job::$form_name; } else { $form = WP_Job_Manager_Form_Submit_Job::instance(); $job_id = $form->get_job_id(); $step = $form->get_step(); $form_name = $form->form_name; } if ($job_id) { $post = get_post($job_id); setup_postdata($post); ?> <form method="post" id="job_preview"> <div class="job_listing_preview_title"> <input type="submit" name="continue" id="job_preview_submit_button" class="button" value="<?php echo apply_filters('submit_job_step_preview_submit_text', __('Submit Listing →', 'jobify')); ?> " /> <input type="submit" name="edit_job" class="button" value="<?php esc_attr_e('← Edit listing', 'jobify'); ?> " /> <input type="hidden" name="job_id" value="<?php echo esc_attr($job_id); ?> " /> <input type="hidden" name="step" value="<?php echo esc_attr($step); ?> " /> <input type="hidden" name="job_manager_form" value="<?php echo $form_name; ?> " /> </div> <?php get_job_manager_template_part('content-single', 'job'); ?> </form> <?php wp_reset_postdata(); } }