# give/4.18.0/src/FormBuilder/Routes/RegisterFormBuilderRestRoutes.php

GiveWP – Donation Plugin and Fundraising Platform, version 4.18.0. 97 lines.

- Page: https://pluginprobe.com/plugins/give/4.18.0/code/src/FormBuilder/Routes/RegisterFormBuilderRestRoutes.php
- Raw: https://pluginprobe.com/plugins/give/4.18.0/raw/src/FormBuilder/Routes/RegisterFormBuilderRestRoutes.php
- Modified: 2026-01-28T15:00:28+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/give/4.18.0/code/src/FormBuilder/Routes/RegisterFormBuilderRestRoutes.php#L10-L20`.

```php
<?php

namespace Give\FormBuilder\Routes;

use Give\FormBuilder\Controllers\FormBuilderResourceController;
use Give\FormBuilder\ValueObjects\FormBuilderRestRouteConfig;
use Give\Framework\Permissions\Facades\UserPermissions;
use WP_REST_Request;
use WP_REST_Server;

class RegisterFormBuilderRestRoutes
{
    /**
     * @var FormBuilderResourceController
     */
    protected $formBuilderResourceController;

    /**
     * @since 3.0.0
     */
    public function __construct(
        FormBuilderResourceController $formBuilderResourceController
    ) {
        $this->formBuilderResourceController = $formBuilderResourceController;
    }

    /**
     * @since 3.0.0
     *
     * @return void
     */
    public function __invoke()
    {
        $this->registerGetForm(FormBuilderRestRouteConfig::NAMESPACE, FormBuilderRestRouteConfig::PATH);
        $this->registerPostForm(FormBuilderRestRouteConfig::NAMESPACE, FormBuilderRestRouteConfig::PATH);
    }

    /**
     * Get Request
     *
     * @since 4.14.0 replace permission callback logic with UserPermissions facade
     * @since 4.3.2 update capability to add edit_give_forms
     * @since 3.0.0
     *
     * @return void
     */
    public function registerGetForm(string $namespace, string $route)
    {
        register_rest_route($namespace, $route, [
            'methods' => WP_REST_Server::READABLE,
            'callback' => function (WP_REST_Request $request) {
                return $this->formBuilderResourceController->show($request);
            },
            'permission_callback' => function () {
                return UserPermissions::donationForms()->canEdit();
            },
            'args' => [
                'id' => [
                    'type' => 'integer',
                    'sanitize_callback' => 'absint',
                ],
            ],
        ]);
    }

    /**
     * Post Request
     *
     * @since 4.14.0 replace permission callback logic with UserPermissions facade
     * @since 4.3.2 update capability to add edit_give_forms
     * @since 3.0.0
     *
     * @return void
     */
    public function registerPostForm(string $namespace, string $route)
    {
        register_rest_route($namespace, $route, [
            'methods' => WP_REST_Server::CREATABLE,
            'callback' => function (WP_REST_Request $request) {
                return $this->formBuilderResourceController->update($request);
            },
            'permission_callback' => function () {
                return UserPermissions::donationForms()->canEdit();
            },
            'args' => [
                'id' => [
                    'type' => 'integer',
                    'sanitize_callback' => 'absint',
                ],
                'blocks' => [
                    'type' => 'string',
                ],
            ],
        ]);
    }
}

```
