$54 GRAYBYTE WORDPRESS FILE MANAGER $77

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.43.35 | ADMIN IP 216.73.216.23
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/home/bravrvjk/itiministry.org/wp-content/plugins/give/src/DonationForms/Routes/

HOME
Current File : /home/bravrvjk/itiministry.org/wp-content/plugins/give/src/DonationForms/Routes//DonateRoute.php
<?php

namespace Give\DonationForms\Routes;


use Exception;
use Give\DonationForms\Controllers\DonateController;
use Give\DonationForms\DataTransferObjects\DonateControllerData;
use Give\DonationForms\DataTransferObjects\DonateFormRouteData;
use Give\DonationForms\DataTransferObjects\DonateRouteData;
use Give\DonationForms\Exceptions\DonationFormFieldErrorsException;
use Give\DonationForms\Exceptions\DonationFormForbidden;
use Give\DonationForms\ValueObjects\DonationFormErrorTypes;
use Give\Framework\PaymentGateways\Exceptions\PaymentGatewayException;
use Give\Framework\PaymentGateways\Traits\HandleHttpResponses;
use Give\Log\Log;
use WP_Error;

/**
 * @since 3.0.0
 */
class DonateRoute
{
    use HandleHttpResponses;

    /**
     * @var DonateController
     */
    private $donateController;

    /**
     * @since 3.0.0
     *
     * @param  DonateController  $donateController
     */
    public function __construct(DonateController $donateController)
    {
        $this->donateController = $donateController;
    }

    /**
     * @since 3.0.0
     *
     * @return void
     */
    public function __invoke(array $request)
    {
        // create DTO from GET request
        $routeData = DonateRouteData::fromRequest(give_clean($_GET));

        // validate signature
        $routeData->validateSignature();

        // create DTO from POST request
        $formData = DonateFormRouteData::fromRequest($request);

        try {
            $data = $formData->validated();

            /**
             * Allow for additional validation of the donation form data.
             * The donation flow can be interrupted by throwing an Exception.
             *
             * @since 3.15.0
             *
             * @param DonateControllerData $data
             */
            do_action('givewp_donate_form_data_validated', $data);

            $this->donateController->donate($data, $data->getGateway());
        } catch (DonationFormFieldErrorsException $exception) {
            $type = DonationFormErrorTypes::VALIDATION;
            $this->logError($type, $exception->getMessage(), $formData);
            $this->sendJsonError($type, $exception->getError());
        } catch (PaymentGatewayException $exception) {
            $type = DonationFormErrorTypes::GATEWAY;
            $this->logError($type, $exception->getMessage(), $formData);
            $this->sendJsonError($type, new WP_Error($type, $exception->getMessage()));
        } catch (DonationFormForbidden $exception) {
            wp_die($exception->getMessage(), 403);
        } catch (Exception $exception) {
            $type = DonationFormErrorTypes::UNKNOWN;
            $this->logError($type, $exception->getMessage(), $formData);
            $this->sendJsonError($type, new WP_Error($type, $exception->getMessage()));
        }

        exit;
    }

    /**
     * @since 3.0.0
     */
    private function logError(
        string $type,
        string $exceptionMessage,
        DonateFormRouteData $formData
    ) {
        Log::error(
            "Donation Route Error: $type",
            [
                'error_type' => $type,
                'exceptionMessage' => $exceptionMessage,
                'formData' => $formData->toArray(),
            ]
        );
    }

    /**
     * @param  string  $type
     * @param  array|string|WP_Error  $errors
     * @return void
     */
    protected function sendJsonError(string $type, WP_Error $errors)
    {
        wp_send_json_error([
            'type' => $type,
            'errors' => $errors,
        ]);
    }
}


Current_dir [ WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
8 Apr 2026 3.24 AM
bravrvjk / bravrvjk
0755
Permissions
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
AuthenticationRoute.php
1.293 KB
2 Nov 2023 11.14 PM
bravrvjk / bravrvjk
0644
DonateRoute.php
3.484 KB
14 Aug 2024 11.11 PM
bravrvjk / bravrvjk
0644
DonateRouteSignature.php
1.563 KB
16 Oct 2023 9.55 PM
bravrvjk / bravrvjk
0644
DonationFormsEntityRoute.php
4.608 KB
2 Oct 2025 9.54 PM
bravrvjk / bravrvjk
0644
ValidationRoute.php
2.434 KB
27 Feb 2025 3.53 AM
bravrvjk / bravrvjk
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF