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 );
		}

Changelog

Changelog
Version Description
4.11.13 Introduced.


User Contributed Notes

You must log in before being able to contribute a note or feedback.