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