post_type ) { return; } // Only send notification on initial submission to pending // Avoid sending on every save when already pending if ( 'pending' !== $new_status || 'pending' === $old_status ) { return; } // Get admin email $admin_email = get_option( 'admin_email' ); if ( ! $admin_email ) { error_log( 'DDHH Job Manager: Cannot send admin notification - admin_email option not set' ); return; } // Prepare email data $job_title = $post->post_title; $author = get_userdata( $post->post_author ); $author_name = $author ? $author->display_name : 'Unbekannt'; $author_org = get_user_meta( $post->post_author, 'ddhh_org_name', true ); if ( empty( $author_org ) ) { $author_org = 'Nicht angegeben'; } // Get ACF fields $job_location = get_field( 'job_location', $post->ID ); $job_type = get_field( 'job_type', $post->ID ); // Get submission date $submission_date = get_the_date( 'd.m.Y H:i', $post->ID ); // Get edit link $edit_link = get_edit_post_link( $post->ID, '' ); // Build email subject $subject = sprintf( 'Neues Stellenangebot zur Prüfung: %s', $job_title ); // Build email body $body = sprintf( "Ein neues Stellenangebot wurde eingereicht und wartet auf Ihre Prüfung.\n\n" . "Titel: %s\n" . "Anbieter: %s (%s)\n" . "Standort: %s\n" . "Art: %s\n" . "Eingereicht am: %s\n\n" . "Prüfen Sie das Stellenangebot hier:\n%s\n\n" . "---\n" . "Diese E-Mail wurde automatisch gesendet.", $job_title, $author_name, $author_org, $job_location ? $job_location : 'Nicht angegeben', $job_type ? $job_type : 'Nicht angegeben', $submission_date, $edit_link ); // Set email headers $headers = array( 'Content-Type: text/html; charset=UTF-8' ); // Convert plain text to HTML with line breaks $html_body = nl2br( esc_html( $body ) ); // Send email $sent = wp_mail( $admin_email, $subject, $html_body, $headers ); // Log if email fails if ( ! $sent ) { error_log( sprintf( 'DDHH Job Manager: Failed to send admin notification for job #%d "%s". Email may be disabled in Local WP environment.', $post->ID, $job_title ) ); } } }