AnsPress_Upgrader::question_tasks( integer $id )
Description #
Process question tasks.
Parameters #
- $idinteger (Required) Question ID.
Source #
File: lib/class-anspress-upgrader.php
private function question_tasks( $id ) {
global $wpdb;
$question = get_post( $id );
$last_active = get_post_meta( $id, '_ap_updated', true );
$views = get_post_meta( $id, '_views', true );
// Get all answers associated with current question.
$this->answer_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} p WHERE post_type = 'answer' AND post_parent = %d ORDER BY post_date ASC", $id ) ); // phpcs:ignore WordPress.DB
foreach ( (array) $this->answer_ids as $answer_id ) {
$this->answer_tasks( $answer_id );
}
$answers_counts = ap_count_published_answers( $id );
$answer_id = (int) get_post_meta( $id, '_ap_selected', true );
$featured_questions = (array) get_option( 'featured_questions' );
ap_insert_qameta(
$id,
array(
'answers' => $answers_counts,
'views' => (int) get_post_meta( $id, '_views', true ),
'subscribers' => (int) get_post_meta( $id, '_ap_subscriber', true ),
'closed' => ( 'closed' === $question->post_status ? 1 : 0 ),
'flags' => (int) get_post_meta( $id, '_ap_flag', true ),
'selected_id' => $answer_id,
'featured' => in_array( $id, $featured_questions ), // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict
'last_updated' => empty( $last_active ) ? $question->post_date : $last_active,
)
);
ap_update_qameta_terms( $id );
ap_update_post_attach_ids( $id );
$this->migrate_votes( $id );
$this->restore_last_activity( $id );
delete_post_meta( $id, '_ap_answers' );
delete_post_meta( $id, '_ap_participants' );
delete_post_meta( $id, '_views' );
delete_post_meta( $id, '_ap_subscriber' );
delete_post_meta( $id, '_ap_selected' );
delete_post_meta( $id, '_ap_vote' );
delete_post_meta( $id, '_ap_flag' );
delete_post_meta( $id, '_ap_selected' );
$this->delete_question_metatables( $id );
}
Expand full source code Collapse full source code View on GitHub: lib/class-anspress-upgrader.php:121
Add your comment