Astra_Addon_Theme_Builder::duplicate_custom_layout( WP_REST_Request $request )
Duplicate custom layout
Description
Parameters
- $request
-
(WP_REST_Request) (Required) Full details about the request.
Return
(WP_Error|WP_REST_Response)
Source
File: addons/advanced-hooks/classes/class-astra-addon-theme-builder.php
public function duplicate_custom_layout( $request ) {
$post_id = $request['id'];
if ( ! get_post_status( $post_id ) ) {
return new WP_Error( 'post_not_found', 'Post not found', array( 'status' => 404 ) );
}
if ( ! current_user_can( 'edit_post', $post_id ) ) {
return new WP_Error( 'rest_forbidden', __( 'You do not have permission to duplicate this item.', 'astra-addon' ), array( 'status' => 403 ) );
}
$new_post_id = $this->create_layout_duplicate( $post_id );
if ( is_wp_error( $new_post_id ) ) {
return new WP_Error( 'post_creation_failed', 'Failed to create duplicate post', array( 'status' => 500 ) );
}
$layout_data = array(
'ID' => $new_post_id,
'post_author' => get_current_user_id(),
'post_title' => get_post_field( 'post_title', $new_post_id ),
'author_name' => wp_get_current_user()->display_name,
'author_image' => get_avatar_url( get_current_user_id() ),
'post_modified' => date( 'Y-m-d' ),
'post_name' => get_post_field( 'post_name', $new_post_id ),
'post_status' => 'draft',
'post_link' => get_preview_post_link( $new_post_id ),
'edit_post_link' => admin_url( 'post.php?post=' . $new_post_id . '&action=edit' ),
'layout_value' => get_post_meta( $new_post_id, 'ast-advanced-hook-layout', true ),
'template_type' => get_post_meta( $new_post_id, 'ast-advanced-hook-template-type', true ),
'enabled' => get_post_meta( $new_post_id, 'ast-advanced-hook-enabled', true ),
);
return new WP_REST_Response( $layout_data, 201 );
}
Expand full source code Collapse full source code View on Trac
Changelog
| Version | Description |
|---|---|
| 4.11.13 | Introduced. |