Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 18.191.103.10
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/wavevlvu/tacafoundation.org/wp-content/plugins/give/src/Controller/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/wavevlvu/tacafoundation.org/wp-content/plugins/give/src/Controller/Form.php
<?php

/**
 * Handle Embed Donation Form Route
 *
 * @package Give/Coontroller
 * @since 2.7.0
 */

namespace Give\Controller;

use Give\Form\LoadTemplate;
use Give\Form\Template;
use Give\Helpers\Form\Template as FormTemplateUtils;
use Give\Helpers\Form\Template\Utils\Frontend as FrontendFormTemplateUtils;
use Give\Helpers\Form\Utils as FormUtils;
use Give\Helpers\Frontend\ConfirmDonation;
use Give\Helpers\Frontend\Shortcode as ShortcodeUtils;
use Give\Helpers\Utils;
use Give\Session\SessionDonation\DonationAccessor;
use Give_Notices;
use WP_Post;

defined('ABSPATH') || exit;

/**
 * Form class.
 *
 * @since 2.7.0
 */
class Form
{

    /**
     * Initialize
     *
     * @since 2.7.0
     */
    public function init()
    {
        add_action('wp', [$this, 'loadTemplateOnFrontend'], 11, 0);
        add_action('admin_init', [$this, 'loadTemplateOnAjaxRequest']);
        add_action('init', [$this, 'embedFormRedirectURIHandler'], 1);
        add_action('template_redirect', [$this, 'loadReceiptView'], 1);
        add_action('give_before_single_form_summary', [$this, 'handleSingleDonationFormPage'], 0);
    }

    /**
     * Load form template on frontend.
     *
     * @since 2.7.0
     */
    public function loadTemplateOnFrontend()
    {
        if (FormUtils::isProcessingForm()) {
            $this->loadTemplate();

            add_action('template_redirect', [$this, 'loadDonationFormView'], 1);
        }
    }

    /**
     * Load receipt view.
     *
     * @since 3.16.0 add action give_donation_confirmation_page_enqueue_scripts
     * @since 2.7.0
     */
    public function loadReceiptView()
    {
        // Do not handle legacy donation form.
        if (FormUtils::isLegacyForm()) {
            return;
        }

       do_action('give_donation_confirmation_page_enqueue_scripts');

        // Handle success page.
        if (FormUtils::isViewingFormReceipt() && ! FormUtils::isLegacyForm()) {
            /* @var Template $formTemplate */
            $formTemplate = Give()->templates->getTemplate();

            if (FormUtils::inIframe() || ($formTemplate->openSuccessPageInIframe && FormUtils::isProcessingForm())) {
                // Set header.
                nocache_headers();
                header('HTTP/1.1 200 OK');

                // Show donation processing template.
                if (ConfirmDonation::isConfirming()) {
                    $session = new DonationAccessor();
                    $donationId = $session->getDonationId();

                    /**
                     * Fire the action hook.
                     *
                     * If developer wants to verify payment before showing receipt then use `give_handle_donation_confirm` action hook to verify donation.
                     * Developer can access query parameters return by payment gateway. for example
                     * $session = new DonationAccessor();
                     * $session->getByKey( "postDataFor{$paymentGatewayId}" )
                     *
                     * @since 2.7.0
                     *
                     * @param int $donationId
                     */
                    do_action('give_handle_donation_confirmation', $donationId);

                    ConfirmDonation::removePostedDataFromDonationSession();

                    // Load payment processing view only if donation is in pending status.
                    if ('pending' === get_post_status($donationId)) {
                        include GIVE_PLUGIN_DIR . 'src/Views/Form/defaultFormDonationProcessing.php';
                        exit();
                    }
                }

                // Render receipt with in iframe.
                include $formTemplate->getReceiptView();
                exit();
            }
            // Render receipt on success page in iframe.
            add_filter('the_content', [$this, 'showReceiptInIframeOnSuccessPage'], 1);
        }
    }

    /**
     * Load donation form view.
     *
     * @since 2.7.0
     * @since 2.16.2 Co-locate $formTemplate with related conditional and usage.
     * @global WP_Post $post
     */
    public function loadDonationFormView()
    {
        // Handle failed donation error.
        if (FormUtils::canShowFailedDonationError()) {
            add_action('give_pre_form', [$this, 'setFailedTransactionError']);
        }

        // Handle donation form.
        if (FormUtils::isViewingForm()) {
            /* @var Template $formTemplate */
            $formTemplate = Give()->templates->getTemplate();

            // Set header.
            nocache_headers();
            header('HTTP/1.1 200 OK');

            include $formTemplate->getFormView();
            exit();
        }
    }

    /**
     * Show failed transaction error on donation form.
     *
     * @since 2.7.0
     */
    public function setFailedTransactionError()
    {
        Give_Notices::print_frontend_notice(
            Give()->templates->getTemplate(FormTemplateUtils::getActiveID())->getFailedDonationMessage(),
            true,
            'error'
        );
    }

    /**
     * Handle receipt shortcode on success page
     *
     * @since 3.16.0 add filter give_donation_confirmation_success_page_shortcode_view
     * @since 2.7.0
     *
     * @param string $content
     *
     * @return string
     */
    public function showReceiptInIframeOnSuccessPage($content)
    {
        $receiptShortcode = ShortcodeUtils::getReceiptShortcodeFromConfirmationPage();

        $view = apply_filters('give_donation_confirmation_success_page_shortcode_view', give_form_shortcode([]));

        return str_replace($receiptShortcode, $view, $content);
    }

    /**
     * Load form template
     *
     * @since 2.7.0
     * @return LoadTemplate
     */
    private function loadTemplate()
    {
        $templateLoader = new LoadTemplate();
        $templateLoader->init();

        return $templateLoader;
    }

    /**
     * Load form template on ajax request.
     *
     * @since 2.7.0
     */
    public function loadTemplateOnAjaxRequest()
    {
        if (FormUtils::isProcessingGiveActionOnAjax() && ! FormUtils::isLegacyForm()) {
            $this->loadTemplate();
        }
    }

    /**
     * Handle donor redirect when process donations.
     *
     * This function handle donor redirect when process donation with offsite checkout and on-site checkout.
     * Donor will immediately redirect to success page aka receipt page for on-site payment process. That means success page remain same (as set in admin settings).
     * For offsite checkout donor will redirect to embed form parent page. A query parameter will be add to url giveDonationAction=showReceipt to handle further cases.
     *
     * @since 2.7.0
     */
    public function embedFormRedirectURIHandler()
    {
        if (FormUtils::isProcessingForm()) {
            add_filter('give_get_success_page_uri', [self::class, 'editSuccessPageURI']);
            add_filter('give_get_failed_transaction_uri', [self::class, 'editFailedPageURI']);
            add_filter('give_send_back_to_checkout', [$this, 'handlePrePaymentProcessingErrorRedirect']);
            add_filter('wp_redirect', [$this, 'handleOffSiteCheckoutRedirect']);
        }
    }

    /**
     * Return current page aka embed form parent url as success page.
     *
     * @since 2.7.0
     *
     * @param string $url
     *
     * @return string
     */
    public static function editSuccessPageURI($url)
    {
        /* @var Template $template */
        $template = Give()->templates->getTemplate();

        return $template->openSuccessPageInIframe ?
            FormUtils::createSuccessPageURL(Utils::switchRequestedURL($url, FormUtils::getIframeParentURL())) :
            $url;
    }

    /**
     * Return current page aka embed form parent url as failed page.
     *
     * @since 2.7.0
     *
     * @param string $url
     *
     * @return string
     */
    public static function editFailedPageURI($url)
    {
        /* @var Template $template */
        $template = Give()->templates->getTemplate(FormTemplateUtils::getActiveID());

        return $template->openFailedPageInIframe ?
            FormUtils::createFailedPageURL(Utils::switchRequestedURL($url, FormUtils::getIframeParentURL())) :
            $url;
    }

    /**
     * Handle pre payment processing redirect.
     *
     * These redirects mainly happen when donation form data is not valid.
     *
     * @since 2.7.0
     * @since 2.9.6 Adds giveDonationFormInIframe query param to url
     *
     * @param string $redirect
     *
     * @return string
     */
    public function handlePrePaymentProcessingErrorRedirect($redirect)
    {
        $redirect = add_query_arg(
            [
                'showDonationProcessingError' => 1,
                'giveDonationFormInIframe' => 1,
            ],
            $redirect
        );

        $url = explode('?', esc_url_raw($redirect), 2);
        $url[0] = Give()->routeForm->getURL(get_post_field('post_name', absint($_REQUEST['give-form-id'])));

        return implode('?', $url);
    }

    /**
     * Handle offsite payment checkout.
     *
     * In case of offsite checkout, this function will load a intermediate template to redirect embed parent page.
     *
     * @since 2.7.0
     *
     * @param string $location
     *
     * @return mixed
     */
    public function handleOffSiteCheckoutRedirect($location)
    {
        /* @var Template $template */
        $template = Give()->templates->getTemplate();

        // Exit if redirect is on same website.
        if (0 === strpos($location, home_url())) {
            if (FormUtils::isIframeParentSuccessPageURL($location)) {
                $location = FormUtils::getSuccessPageURL();
                $location = Utils::removeDonationAction($location);

                // Open link in window?
                if ( ! $template->openSuccessPageInIframe) {
                    $this->openLinkInWindow($location);
                }

                return $location;
            }

            if (FormUtils::isIframeParentFailedPageURL($location)) {
                $location = add_query_arg(
                    ['showFailedDonationError' => 1],
                    $template->getFailedPageURL(FrontendFormTemplateUtils::getFormId())
                );
                $location = Utils::removeDonationAction($location);

                // Open link in window?
                if ( ! $template->openFailedPageInIframe) {
                    $this->openLinkInWindow(FormUtils::getLegacyFailedPageURL());
                }

                return $location;
            }

            // Add comment here.
            if (
                ( ! $template->openSuccessPageInIframe && 0 === strpos($location, FormUtils::getSuccessPageURL())) ||
                ( ! $template->openFailedPageInIframe && 0 === strpos($location, FormUtils::getLegacyFailedPageURL()))
            ) {
                $this->openLinkInWindow($location);
            }

            return $location;
        }

        $this->openLinkInWindow($location);
    }

    /**
     * Handle link opening in window instead of iframe.
     *
     * @since 2.7.0
     *
     * @param string $location
     */
    private function openLinkInWindow($location)
    {
        include GIVE_PLUGIN_DIR . 'src/Views/Form/defaultRedirectHandlerTemplate.php';
        exit();
    }

    /**
     * Handle single donation form page.
     *
     * @since 2.7.0
     */
    public function handleSingleDonationFormPage()
    {
        // Exit if current form is legacy
        if (FormUtils::isLegacyForm()) {
            return;
        }

        // Disable sidebar.
        add_action('give_get_option_form_sidebar', [$this, 'disableLegacyDonationFormSidebar']);

        // Remove title.
        remove_action('give_single_form_summary', 'give_template_single_title', 5);

        // Remove donation form renderer.
        remove_action('give_single_form_summary', 'give_get_donation_form', 10);

        add_action('give_single_form_summary', [$this, 'renderFormOnSingleDonationFormPage'], 10);
    }

    /**
     * Return 'disabled' as donation form sidebar status.
     *
     * @since 2.7.0
     * @return string
     */
    public function disableLegacyDonationFormSidebar()
    {
        return 'disabled';
    }

    /**
     * This function handle donation form style for single donation page.
     *
     * Note: it will render style on basis on selected form template.
     *
     * @since 2.7.0
     */
    public function renderFormOnSingleDonationFormPage()
    {
        echo give_form_shortcode([]);
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit