HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux WebLive 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wpmuhibbah_err/wp-content/plugins/give/src/Campaigns/Actions/RenderDonateButton.php
<?php

namespace Give\Campaigns\Actions;

use Give\DonationForms\Blocks\DonationFormBlock\Controllers\BlockRenderController;
use Give\DonationForms\Models\DonationForm;

/**
 * @since 4.0.0
 */
class RenderDonateButton
{
    /**
     * @since 4.0.0
     */
    private BlockRenderController $blockRenderController;

    /**
     * @since 4.0.0
     */
    public function __construct(BlockRenderController $blockRenderController)
    {
        $this->blockRenderController = $blockRenderController;
    }

    /**
     * @since 4.0.0
     */
    public function __invoke(int $formId, string $buttonText): string
    {
        if (!$this->isFormPublished($formId)) {
            return '';
        }

        $blockRender = $this->blockRenderController->render([
            'formId' => $formId,
            'openFormButton' => esc_html($buttonText),
            'formFormat' => 'modal',
        ]);

        return $blockRender ?? sprintf(
            '<button type="button" class="givewp-donation-form-modal__open">%s</button>',
            esc_html($buttonText)
        );
    }

    /**
     * @since 4.0.0
     */
    private function isFormPublished(int $formId): bool
    {
        if (!$formId) {
            return false;
        }

        /** @var DonationForm $form */
        $form = DonationForm::find($formId);

        return $form && $form->status->isPublished();
    }
}