LLMS_REST_Posts_Controller::delete_item( WP_REST_Request $request )
Deletes a single llms post.
Parameters Parameters
- $request
-
(WP_REST_Request) (Required) Full details about the request.
Return Return
(WP_REST_Response|WP_Error) Response object on success, or WP_Error object on failure.
Source Source
File: libraries/lifterlms-rest/includes/abstracts/class-llms-rest-posts-controller.php
if ( ! $this->check_delete_permission( $object ) ) {
return llms_rest_authorization_required_error(
sprintf(
// Translators: %s = The post type name.
__( 'Sorry, you are not allowed to delete %s as this user.', 'lifterlms' ),
get_post_type_object( $this->post_type )->labels->name
)
);
}
return true;
}
/**
* Deletes a single llms post.
*
* @since 1.0.0-beta.1
*
* @param WP_REST_Request $request Full details about the request.
* @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
*/
public function delete_item( $request ) {
$object = $this->get_object( (int) $request['id'] );
$response = new WP_REST_Response();
$response->set_status( 204 );
if ( is_wp_error( $object ) ) {
// Course not found, we don't return a 404.
if ( in_array( 'llms_rest_not_found', $object->get_error_codes(), true ) ) {
return $response;
}
return $object;
}
$post_type_object = get_post_type_object( $this->post_type );
$post_type_name = $post_type_object->labels->singular_name;
$id = $object->get( 'id' );
$force = $this->is_delete_forced( $request );
// If we're forcing, then delete permanently.
if ( $force ) {
$result = wp_delete_post( $id, true );
} else {
$supports_trash = $this->is_trash_supported();
// If we don't support trashing for this type, error out.
if ( ! $supports_trash ) {
return new WP_Error(
'llms_rest_trash_not_supported',
/* translators: %1$s: post type name, %2$s: force=true */
sprintf( __( 'The %1$s does not support trashing. Set \'%2$s\' to delete.', 'lifterlms' ), $post_type_name, 'force=true' ),
array( 'status' => 501 )
);
}
// Otherwise, only trash if we haven't already.
if ( 'trash' !== $object->get( 'status' ) ) {
// (Note that internally this falls through to `wp_delete_post` if
// the trash is disabled.)
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
| Version | Description |
|---|---|
| 1.0.0-beta.1 | Introduced. |