diff --git a/.claude/settings.local.json b/.claude/settings.local.json deleted file mode 100644 index b7290fb..0000000 --- a/.claude/settings.local.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "permissions": { - "allow": [ - "Skill(gsd:audit-milestone)", - "WebSearch", - "Bash(wp i18n make-pot:*)" - ] - } -} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d6b130c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.claude/settings.local.json diff --git a/includes/class-cpt.php b/includes/class-cpt.php index c85cbcb..15884a1 100644 --- a/includes/class-cpt.php +++ b/includes/class-cpt.php @@ -32,7 +32,7 @@ class Umzugsliste_CPT { * Constructor */ private function __construct() { - // CPT registration is called directly from main plugin init + add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) ); } /** @@ -68,4 +68,164 @@ class Umzugsliste_CPT { register_post_type( 'umzugsliste_entry', $args ); } + + /** + * Register meta boxes + */ + public function add_meta_boxes() { + add_meta_box( + 'umzugsliste_entry_details', + __( 'Submission Details', 'siegel-umzugsliste' ), + array( $this, 'render_details_meta_box' ), + 'umzugsliste_entry', + 'normal', + 'high' + ); + } + + /** + * Render the submission details meta box + * + * @param WP_Post $post Current post object + */ + public function render_details_meta_box( $post ) { + $data = json_decode( $post->post_content, true ); + + if ( empty( $data ) ) { + echo '
' . esc_html__( 'No submission data found.', 'siegel-umzugsliste' ) . '
'; + return; + } + + // Meta info + $email_sent = get_post_meta( $post->ID, '_umzugsliste_email_sent', true ); + $email_time = get_post_meta( $post->ID, '_umzugsliste_email_sent_at', true ); + $total_cbm = get_post_meta( $post->ID, '_umzugsliste_total_cbm', true ); + + echo ''; + echo '' . esc_html__( 'Email sent:', 'siegel-umzugsliste' ) . ' '; + echo $email_sent ? esc_html__( 'Yes', 'siegel-umzugsliste' ) : esc_html__( 'No', 'siegel-umzugsliste' ); + if ( $email_time ) { + echo ' (' . esc_html( $email_time ) . ')'; + } + echo ' ' . esc_html__( 'Total CBM:', 'siegel-umzugsliste' ) . ' ' . esc_html( $total_cbm ?: '0' ) . '
'; + + // Moving date + $date_str = ( $data['umzug_day'] ?? '' ) . '.' . ( $data['umzug_month'] ?? '' ) . '.' . ( $data['umzug_year'] ?? '' ); + echo '' . esc_html( $date_str ) . '
'; + + // Addresses + echo '| ' . esc_html__( 'Loading', 'siegel-umzugsliste' ) . ' | ' . esc_html__( 'Unloading', 'siegel-umzugsliste' ) . ' | |
|---|---|---|
| ' . esc_html( $label ) . ' | '; + echo '' . esc_html( $data[ $keys[0] ] ?? '' ) . ' | '; + echo '' . esc_html( $data[ $keys[1] ] ?? '' ) . ' |
| ' . esc_html( $label ) . ' | ' . esc_html( $value ) . ' | |
| ' . esc_html__( 'Room', 'siegel-umzugsliste' ) . ' | ' . esc_html__( 'Item', 'siegel-umzugsliste' ) . ' | ' . esc_html__( 'Qty', 'siegel-umzugsliste' ) . ' | CBM | ' . esc_html__( 'Assembly', 'siegel-umzugsliste' ) . ' |
|---|---|---|---|---|
| ' . esc_html( $room_label ) . ' | '; + echo '' . esc_html( $item[0] ) . ' | '; + echo '' . esc_html( $item[1] ) . ' | '; + echo '' . esc_html( $item[2] ) . ' | '; + echo '' . esc_html( $item[3] ?: '-' ) . ' |
| ' . esc_html( $section ) . ' | ' . esc_html( $field_key ) . ': ' . esc_html( $value ) . ' |
|---|
' . esc_html( $data['sonstiges'] ) . '
'; + } + + echo '