在使用wp_delete_post删除帖子时,它的返回意外

时间:2018-09-17 10:52:06

标签: wordpress

我正在尝试删除自定义帖子类型的帖子。

当我使用wp_delete_post时,它将删除该帖子,但返回Unexpected”。

我调试了代码,然后在以下行中发现了问题:wp_delete_post函数的do_action('delete_post',$ postid)。

你能帮我吗?

function it_api_remove_contact_lenses_order( $request_data ) {

$json           = $request_data->get_params();

$user_id        = sanitize_text_field( $json['userid'] );
$nonce          = $json['nonce'];

if ( it_check_nonce( $nonce, $user_id ) ) {

    $args = array(
        'post_type'     => 'reservas_lentillas',
        'meta_query'    => array(
            array(
                'key' => '_itc_lens_user',
                'value' => $user_id,
                'compare' => '=',
            )
        )
    );
    $posts = get_posts( $args );
    if ( $posts ) {
        if ( get_post_meta( $posts[0]->ID, '_itc_lens_order_status', true ) == "recibido" ) {
            wp_delete_post( $posts[0]->ID );
            return array( 'result' => 'ok' );
        } else {
            return array( 'result' => 'error', 'error' => 'estado' );
        }
    } else {
        return array( 'result' => 'error', 'error' => 'pedido' );
    }

} else {
    return array( 'result' => 'error', 'error' => 'nonce' );
}

}

add_action( 'rest_api_init', function () {
    register_rest_route( 'api', '/remove_cl_order', array(
            'methods' => 'POST',
            'callback' => 'it_api_remove_contact_lenses_order',
        )
    );
});

1 个答案:

答案 0 :(得分:0)

已修复,问题出在其他需要if的函数中。

    function it_redirect_after_delete_post() {

    global $post;



    if ( $post ) { //This "if" didn't exists and returned the error

    $post_type = $post->post_type;

    if ( 'reservas_lentillas' == $post_type ) {
      wp_redirect( get_admin_url() . '/edit.php?post_type=' . $post_type );
    }

    exit;
  }

}
add_action( 'deleted_post', 'it_redirect_after_delete_post' );