get_var( $wpdb->prepare( "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key = '_ttdvr_verification_id' AND meta_value = %s LIMIT 1", $doc_id ) ); // If it exists, count it as a duplicate and skip to the next row! if ( $existing_id ) { $duplicate_count++; continue; } // ---------------------------- $doc_type = isset( $doc['document_type'] ) ? sanitize_text_field( $doc['document_type'] ) : ''; if ( $doc_type === 'Other' && ! empty( $doc['document_type_other'] ) ) { $doc_type = sanitize_text_field( $doc['document_type_other'] ); } $post_id = wp_insert_post( array( 'post_title' => $title, 'post_type' => 'ttdvr_document', 'post_status' => 'publish' ) ); if ( ! is_wp_error( $post_id ) ) { update_post_meta( $post_id, '_ttdvr_verification_id', $doc_id ); if ( ! empty( $doc['recipient_name'] ) ) update_post_meta( $post_id, '_ttdvr_recipient_name', sanitize_text_field( $doc['recipient_name'] ) ); if ( ! empty( $doc_type ) ) update_post_meta( $post_id, '_ttdvr_document_type', $doc_type ); if ( ! empty( $doc['course_subject'] ) ) update_post_meta( $post_id, '_ttdvr_course_subject', sanitize_text_field( $doc['course_subject'] ) ); if ( ! empty( $doc['issued_date'] ) ) update_post_meta( $post_id, '_ttdvr_issued_date', sanitize_text_field( $doc['issued_date'] ) ); if ( ! empty( $doc['category_id'] ) ) { wp_set_object_terms( $post_id, intval( $doc['category_id'] ), 'ttdvr_doc_category' ); } $success_count++; } } } // 3. SET DYNAMIC FEEDBACK MESSAGES if ( $success_count > 0 ) { $message = sprintf( esc_html__( 'Success! %d documents were added to your database.', '24tt-document-verifier' ), $success_count ); // Append a warning if duplicates were caught if ( $duplicate_count > 0 ) { $message .= ' ' . sprintf( esc_html__( 'However, %d documents were skipped because their Document IDs already exist.', '24tt-document-verifier' ), $duplicate_count ); set_transient( 'ttdvr_bulk_upload_message_type', 'warning', 45 ); // Yellow warning banner } else { set_transient( 'ttdvr_bulk_upload_message_type', 'success', 45 ); // Green success banner } set_transient( 'ttdvr_bulk_upload_message', $message, 45 ); } elseif ( $duplicate_count > 0 ) { // They submitted only duplicates set_transient( 'ttdvr_bulk_upload_message', sprintf( esc_html__( 'Failed: All %d documents were skipped because those Document IDs already exist.', '24tt-document-verifier' ), $duplicate_count ), 45 ); set_transient( 'ttdvr_bulk_upload_message_type', 'error', 45 ); } else { set_transient( 'ttdvr_bulk_upload_message', esc_html__( 'No documents were added. Please ensure the Title and Doc ID fields are filled out.', '24tt-document-verifier' ), 45 ); set_transient( 'ttdvr_bulk_upload_message_type', 'error', 45 ); } // 4. REDIRECT wp_safe_redirect( admin_url( 'admin.php?page=ttdvr-tools' ) ); exit; } } new TTDVR_Bulk_Upload();