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 <noreply@anthropic.com>
This commit is contained in:
2026-01-29 14:03:47 +09:00
parent d907878143
commit 08b9ad24a5
3 changed files with 226 additions and 42 deletions

View File

@@ -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;

View File

@@ -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();
?>
<div class="ddhh-back-to-archive">
<a href="<?php echo esc_url( get_post_type_archive_link( 'job_offer' ) ); ?>">← Alle Jobangebote</a>
</div>
<div class="ddhh-job-offer-details">
<?php if ( $job_logo ) : ?>
<div class="job-logo">
@@ -118,6 +122,18 @@ class DDHH_JM_Template {
<?php endif; ?>
<style>
.ddhh-back-to-archive {
margin-bottom: 1.5rem;
}
.ddhh-back-to-archive a {
color: #3b82f6;
text-decoration: none;
font-weight: 500;
}
.ddhh-back-to-archive a:hover {
color: #2563eb;
text-decoration: underline;
}
.ddhh-job-offer-details {
margin: 2em 0;
}