我正在尝试删除自定义帖子类型的帖子。
当我使用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',
)
);
});
答案 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' );