AnsPress_Ajax::toggle_delete_post()
Description #
Process ajax trash posts callback.
Source #
File: includes/ajax-hooks.php
public static function toggle_delete_post() { $post_id = (int) ap_sanitize_unslash( 'post_id', 'request' ); $failed_response = array( 'success' => false, 'snackbar' => array( 'message' => __( 'Unable to trash this post', 'anspress-question-answer' ) ), ); if ( ! anspress_verify_nonce( 'trash_post_' . $post_id ) ) { ap_ajax_json( $failed_response ); } $post = ap_get_post( $post_id ); $post_type = 'question' === $post->post_type ? __( 'Question', 'anspress-question-answer' ) : __( 'Answer', 'anspress-question-answer' ); if ( 'trash' === $post->post_status ) { if ( ! ap_user_can_restore( $post ) ) { ap_ajax_json( $failed_response ); } wp_untrash_post( $post->ID ); ap_ajax_json( array( 'success' => true, 'action' => array( 'active' => false, 'label' => __( 'Delete', 'anspress-question-answer' ), 'title' => sprintf( /* Translators: %s Question or Answer post type label for deleting a question or answer. */ __( 'Delete this %s (can be restored again)', 'anspress-question-answer' ), ( 'question' === $post->post_type ) ? esc_html__( 'question', 'anspress-question-answer' ) : esc_html__( 'answer', 'anspress-question-answer' ) ), ), // translators: %s post type. 'snackbar' => array( 'message' => sprintf( __( '%s is restored', 'anspress-question-answer' ), $post_type ) ), 'newStatus' => 'publish', 'postmessage' => ap_get_post_status_message( $post_id ), ) ); } if ( ! ap_user_can_delete_post( $post_id ) ) { ap_ajax_json( $failed_response ); } // Delete lock feature. // Do not allow post to be trashed if defined time elapsed. if ( ( time() > ( get_the_time( 'U', $post->ID ) + (int) ap_opt( 'disable_delete_after' ) ) ) && ! is_super_admin() ) { ap_ajax_json( array( 'success' => false, // translators: %s is human time difference. 'snackbar' => array( 'message' => sprintf( __( 'This post was created %s, hence you cannot trash it', 'anspress-question-answer' ), ap_human_time( get_the_time( 'U', $post->ID ) ) ) ), ) ); } wp_trash_post( $post_id ); ap_ajax_json( array( 'success' => true, 'action' => array( 'active' => true, 'label' => __( 'Undelete', 'anspress-question-answer' ), 'title' => sprintf( /* Translators: %s Question or Answer post type label for restoring a question or answer. */ __( 'Restore this %s', 'anspress-question-answer' ), ( 'question' === $post->post_type ) ? esc_html__( 'question', 'anspress-question-answer' ) : esc_html__( 'answer', 'anspress-question-answer' ) ), ), // translators: %s is post type. 'snackbar' => array( 'message' => sprintf( __( '%s is trashed', 'anspress-question-answer' ), $post_type ) ), 'newStatus' => 'trash', 'postmessage' => ap_get_post_status_message( $post_id ), ) ); }
Expand full source code Collapse full source code View on GitHub: includes/ajax-hooks.php:150
Add your comment