From 08b9ad24a59024388d38596fde92cef80de6ac6a Mon Sep 17 00:00:00 2001 From: Viktor Miller Date: Thu, 29 Jan 2026 14:03:47 +0900 Subject: [PATCH] refactor: restructure dashboard UX and migrate logos to provider level - Move job submission form to separate view (?action=new_job) - Replace inline form with prominent green button on main dashboard - Migrate logos from per-job (post thumbnail) to per-provider (user meta) - Add logo upload/removal functionality to provider dashboard - Display provider logo on single job pages instead of per-job logo - Add back link to archive on single job pages - Remove logo handling from form submission/edit processors - Improve button styling with proper CSS specificity Co-Authored-By: Claude Sonnet 4.5 --- includes/class-formidable.php | 26 ---- includes/class-template.php | 18 ++- templates/provider-dashboard.php | 224 ++++++++++++++++++++++++++++--- 3 files changed, 226 insertions(+), 42 deletions(-) diff --git a/includes/class-formidable.php b/includes/class-formidable.php index c4f0c73..c829d1b 100644 --- a/includes/class-formidable.php +++ b/includes/class-formidable.php @@ -474,7 +474,6 @@ class DDHH_JM_Formidable { $job_type = ''; $job_deadline = ''; $job_contact_email = ''; - $job_logo = ''; foreach ( $entry->metas as $field_id => $value ) { $field = FrmField::getOne( $field_id ); @@ -501,9 +500,6 @@ class DDHH_JM_Formidable { case 'job_contact_email': $job_contact_email = sanitize_email( $value ); break; - case 'job_logo': - $job_logo = $value; // File ID - break; } } @@ -541,12 +537,6 @@ class DDHH_JM_Formidable { update_post_meta( $post_id, 'job_deadline', $job_deadline ); } - // Handle logo upload if present - if ( ! empty( $job_logo ) && is_numeric( $job_logo ) ) { - set_post_thumbnail( $post_id, absint( $job_logo ) ); - error_log( 'DDHH Job Submission: Logo set as featured image' ); - } - error_log( 'DDHH Job Submission: Job offer created successfully' ); do_action( 'ddhh_job_submitted', $post_id, $entry_id ); @@ -599,7 +589,6 @@ class DDHH_JM_Formidable { $job_type = ''; $job_deadline = ''; $job_contact_email = ''; - $job_logo = ''; foreach ( $entry->metas as $field_id => $value ) { $field = FrmField::getOne( $field_id ); @@ -632,10 +621,6 @@ class DDHH_JM_Formidable { case 'job_contact_email2': $job_contact_email = sanitize_email( $value ); break; - case 'job_logo': - case 'job_logo2': - $job_logo = $value; // File ID - break; } } @@ -672,12 +657,6 @@ class DDHH_JM_Formidable { update_post_meta( $post_id, 'job_deadline', $job_deadline ); } - // Handle logo upload if present - if ( ! empty( $job_logo ) && is_numeric( $job_logo ) ) { - set_post_thumbnail( $post_id, absint( $job_logo ) ); - error_log( 'DDHH Job Edit: Logo updated' ); - } - error_log( 'DDHH Job Edit: Job offer updated successfully' ); do_action( 'ddhh_job_edited', $post_id, $entry_id ); @@ -1159,11 +1138,6 @@ class DDHH_JM_Formidable { case 'job_contact_email2': $value = get_post_meta( $post_id, 'job_contact_email', true ); return $value ? $value : $default_value; - - case 'job_logo': - case 'job_logo2': - $value = get_post_thumbnail_id( $post_id ); - return $value ? $value : $default_value; } return $default_value; diff --git a/includes/class-template.php b/includes/class-template.php index c668195..6a36157 100644 --- a/includes/class-template.php +++ b/includes/class-template.php @@ -40,7 +40,8 @@ class DDHH_JM_Template { $job_type = get_post_meta( $post->ID, 'job_type', true ); $job_deadline = get_post_meta( $post->ID, 'job_deadline', true ); $job_contact_email = get_post_meta( $post->ID, 'job_contact_email', true ); - $job_logo = get_the_post_thumbnail( $post->ID, 'job-logo' ); + $provider_logo_id = get_user_meta( $post->post_author, 'ddhh_provider_logo', true ); + $job_logo = $provider_logo_id ? wp_get_attachment_image( absint( $provider_logo_id ), 'job-logo' ) : ''; // Get author/organization info $author = get_userdata( $post->post_author ); @@ -50,6 +51,9 @@ class DDHH_JM_Template { // Build job details HTML ob_start(); ?> +