[a-z_-]+)', array( 'methods' => 'GET', 'callback' => array( $this, 'rest_get_region' ), 'permission_callback' => array( $this, 'rest_permission' ), ) ); } public function rest_permission(): bool { return current_user_can( 'edit_pages' ); } public function rest_get_region( WP_REST_Request $request ): WP_REST_Response { $region = sanitize_key( $request->get_param( 'region' ) ); $store = new SLBUILD_DataStore(); $data = $store->get_global( $region ); if ( ! $data ) { $data = array( 'layout' => array(), 'instances' => array() ); } return new WP_REST_Response( $data, 200 ); } public function render_page(): void { if ( ! current_user_can( 'edit_pages' ) ) { wp_die( esc_html__( 'You do not have sufficient permissions.', 'slb-section-layout-builder' ) ); } $regions = array( 'header' => __( 'Header', 'slb-section-layout-builder' ), 'footer' => __( 'Footer', 'slb-section-layout-builder' ), 'announcement' => __( 'Announcement Bar', 'slb-section-layout-builder' ), ); $base_url = admin_url( 'admin.php?page=' . SLBUILD_EditorPanel::MENU_SLUG ); ?>