diff --git a/includes/abstracts/abstract-wp-job-manager-form.php b/includes/abstracts/abstract-wp-job-manager-form.php index b0446f565..273c1809c 100644 --- a/includes/abstracts/abstract-wp-job-manager-form.php +++ b/includes/abstracts/abstract-wp-job-manager-form.php @@ -73,6 +73,20 @@ public function __wakeup() { * Process function. all processing code if needed - can also change view if step is complete */ public function process() { + + // reset cookie + if ( + isset( $_GET[ 'new' ] ) && + isset( $_COOKIE[ 'wp-job-manager-submitting-job-id' ] ) && + isset( $_COOKIE[ 'wp-job-manager-submitting-job-key' ] ) && + get_post_meta( $_COOKIE[ 'wp-job-manager-submitting-job-id' ], '_submitting_key', true ) == $_COOKIE['wp-job-manager-submitting-job-key'] + ) { + delete_post_meta( $_COOKIE[ 'wp-job-manager-submitting-job-id' ], '_submitting_key' ); + setcookie( 'wp-job-manager-submitting-job-id', '', time() - 3600, COOKIEPATH, COOKIE_DOMAIN, false ); + setcookie( 'wp-job-manager-submitting-job-key', '', time() - 3600, COOKIEPATH, COOKIE_DOMAIN, false ); + wp_redirect( remove_query_arg( array( 'new', 'key' ), $_SERVER[ 'REQUEST_URI' ] ) ); + } + $step_key = $this->get_step_key( $this->step ); if ( $step_key && is_callable( $this->steps[ $step_key ]['handler'] ) ) { diff --git a/includes/forms/class-wp-job-manager-form-submit-job.php b/includes/forms/class-wp-job-manager-form-submit-job.php index 10950d727..f4d26ccc4 100644 --- a/includes/forms/class-wp-job-manager-form-submit-job.php +++ b/includes/forms/class-wp-job-manager-form-submit-job.php @@ -89,12 +89,14 @@ public function __construct() { } // Allow resuming from cookie. - if ( ! $this->job_id && ! empty( $_COOKIE['wp-job-manager-submitting-job-id'] ) && ! empty( $_COOKIE['wp-job-manager-submitting-job-key'] ) ) { + $this->resume_edit = false; + if ( ! isset( $_GET[ 'new' ] ) && ( 'before' === get_option( 'job_manager_paid_listings_flow' ) || ! $this->job_id ) && ! empty( $_COOKIE['wp-job-manager-submitting-job-id'] ) && ! empty( $_COOKIE['wp-job-manager-submitting-job-key'] ) ) { $job_id = absint( $_COOKIE['wp-job-manager-submitting-job-id'] ); $job_status = get_post_status( $job_id ); if ( ( 'preview' === $job_status || 'pending_payment' === $job_status ) && get_post_meta( $job_id, '_submitting_key', true ) === $_COOKIE['wp-job-manager-submitting-job-key'] ) { $this->job_id = $job_id; + $this->resume_edit = get_post_meta( $job_id, '_submitting_key', true ); } } @@ -412,6 +414,7 @@ public function submit() { get_job_manager_template( 'job-submit.php', array( 'form' => $this->form_name, 'job_id' => $this->get_job_id(), + 'resume_edit' => $this->resume_edit, 'action' => $this->get_action(), 'job_fields' => $this->get_fields( 'job' ), 'company_fields' => $this->get_fields( 'company' ), diff --git a/templates/job-submit.php b/templates/job-submit.php index 0f25607ef..0bdee70c8 100644 --- a/templates/job-submit.php +++ b/templates/job-submit.php @@ -8,6 +8,12 @@ ?>