AnsPress_Ajax::permanent_delete_post()
Description #
Handle Ajax callback for permanent delete of post.
Source #
File: includes/ajax-hooks.php
public static function permanent_delete_post() {
$post_id = (int) ap_sanitize_unslash( 'post_id', 'request' );
if ( ! anspress_verify_nonce( 'delete_post_' . $post_id ) || ! ap_user_can_permanent_delete( $post_id ) ) {
ap_ajax_json(
array(
'success' => false,
'snackbar' => array( 'message' => __( 'Sorry, unable to delete post', 'anspress-question-answer' ) ),
)
);
}
$post = ap_get_post( $post_id );
if ( 'question' === $post->post_type ) {
/**
* Triggered right before deleting question.
*
* @param integer $post_id question ID.
*/
do_action( 'ap_wp_trash_question', $post_id );
} else {
/**
* Triggered right before deleting answer.
*
* @param integer $post_id answer ID.
*/
do_action( 'ap_wp_trash_answer', $post_id );
}
wp_delete_post( $post_id, true );
if ( 'question' === $post->post_type ) {
ap_ajax_json(
array(
'success' => true,
'redirect' => ap_base_page_link(),
'snackbar' => array( 'message' => __( 'Question is deleted permanently', 'anspress-question-answer' ) ),
)
);
}
$current_ans = ap_count_published_answers( $post->post_parent );
// translators: %d is answers count.
$count_label = sprintf( _n( '%d Answer', '%d Answers', $current_ans, 'anspress-question-answer' ), $current_ans );
ap_ajax_json(
array(
'success' => true,
'snackbar' => array( 'message' => __( 'Answer is deleted permanently', 'anspress-question-answer' ) ),
'deletePost' => $post_id,
'answersCount' => array(
'text' => $count_label,
'number' => $current_ans,
),
)
);
}
Expand full source code Collapse full source code View on GitHub: includes/ajax-hooks.php:234
Add your comment