db = $db; } /** * Render the translation editor page. * * @param int $translation_id The translation ID to edit. */ public function render( $translation_id ) { // Handle save if form was submitted. if ( isset( $_SERVER['REQUEST_METHOD'] ) && 'POST' === $_SERVER['REQUEST_METHOD'] && isset( $_POST['translatetoenglish_save_translation'] ) && isset( $_POST['translatetoenglish_editor_nonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['translatetoenglish_editor_nonce'] ) ), 'translatetoenglish_save_translation' ) ) { $this->handle_save( $translation_id ); } // Get translation data. $translation = $this->db->get_translation_by_id( $translation_id ); if ( ! $translation ) { echo '

' . esc_html__( 'Translation not found.', '2fox4-translate-to-english' ) . '

'; return; } // Get original post. $original_post = get_post( $translation->source_id ); if ( ! $original_post ) { echo '

' . esc_html__( 'Original post not found.', '2fox4-translate-to-english' ) . '

'; return; } // Status options. $statuses = array( 'draft' => __( 'Draft', '2fox4-translate-to-english' ), 'machine' => __( 'Machine Translated', '2fox4-translate-to-english' ), 'reviewed' => __( 'Reviewed', '2fox4-translate-to-english' ), 'published' => __( 'Published', '2fox4-translate-to-english' ), ); ?>

post_title ); ?>
post_name ); ?>
post_content ); ?>
post_excerpt ); ?>

translated_content, 'translated_content', array( 'textarea_name' => 'translated_content', 'media_buttons' => true, 'textarea_rows' => 20, 'teeny' => false, ) ); ?>

provider ) ); ?>

translated_at ); ?>

modified_at ); ?>

isset( $_POST['translated_title'] ) ? sanitize_text_field( wp_unslash( $_POST['translated_title'] ) ) : '', 'translated_slug' => isset( $_POST['translated_slug'] ) ? sanitize_title( wp_unslash( $_POST['translated_slug'] ) ) : '', 'translated_content' => isset( $_POST['translated_content'] ) ? wp_kses_post( wp_unslash( $_POST['translated_content'] ) ) : '', 'translated_excerpt' => isset( $_POST['translated_excerpt'] ) ? sanitize_text_field( wp_unslash( $_POST['translated_excerpt'] ) ) : '', 'status' => $status, ); // Update translation. $result = $this->db->update_translation( $translation_id, $data ); if ( $result ) { add_settings_error( 'translatetoenglish_editor', 'saved', __( 'Translation saved successfully.', '2fox4-translate-to-english' ), 'success' ); } else { add_settings_error( 'translatetoenglish_editor', 'save_failed', __( 'Failed to save translation.', '2fox4-translate-to-english' ), 'error' ); } } }