AnsPress_Ajax::close_question()
Description #
Close question callback.
Source #
File: includes/ajax-hooks.php
public static function close_question() {
$post_id = ap_sanitize_unslash( 'post_id', 'p' );
// Check permission and nonce.
if ( ! is_user_logged_in() || ! check_ajax_referer( 'close_' . $post_id, 'nonce', false ) || ! ap_user_can_close_question() ) {
ap_ajax_json(
array(
'success' => false,
'snackbar' => array( 'message' => __( 'You cannot close a question', 'anspress-question-answer' ) ),
)
);
}
$_post = ap_get_post( $post_id );
$toggle = ap_toggle_close_question( $post_id );
$close_label = $_post->closed ? __( 'Close', 'anspress-question-answer' ) : __( 'Open', 'anspress-question-answer' );
$close_title = $_post->closed ? __( 'Close this question for new answer.', 'anspress-question-answer' ) : __( 'Open this question for new answers', 'anspress-question-answer' );
$message = 1 === $toggle ? __( 'Question closed', 'anspress-question-answer' ) : __( 'Question is opened', 'anspress-question-answer' );
// Log in activity table.
if ( 1 === $toggle ) {
ap_activity_add(
array(
'q_id' => $_post->ID,
'action' => 'closed_q',
)
);
} else {
ap_activity_add(
array(
'q_id' => $_post->ID,
'action' => 'open_q',
)
);
}
$results = array(
'success' => true,
'action' => array(
'label' => $close_label,
'title' => $close_title,
),
'snackbar' => array( 'message' => $message ),
'postmessage' => ap_get_post_status_message( $post_id ),
);
ap_ajax_json( $results );
}
Expand full source code Collapse full source code View on GitHub: includes/ajax-hooks.php:378
Add your comment