HEX
Server: LiteSpeed
System: Linux server315.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: globfdxw (6114)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //home/globfdxw/www/wp-content/plugins/give/src/Campaigns/Actions/RegisterCampaignBlocks.php
<?php

namespace Give\Campaigns\Actions;

use Give\Framework\Support\Facades\Scripts\ScriptAsset;
use Give\Helpers\Language;
use WP_Block_Type;

/**
 * @since 4.0.0
 */
class RegisterCampaignBlocks
{
    private $campaignBlocks = [];

    /**
     * @since 4.6.1 Load campaign public options on frontend
     * @since 4.0.0
     */
    public function __invoke()
    {
        $blockPaths = glob(dirname(__DIR__) . '/Blocks/*', GLOB_ONLYDIR);

        $this->campaignBlocks = array_filter(
            array_map('register_block_type', $blockPaths),
            function ($block) {
                return $block instanceof WP_Block_Type;
            }
        );

        $this->registerSharedStyles();
        $this->loadCampaignPublicOptions();
    }

    /**
     * @since 4.6.1 Load campaign admin options on block editor
     * @since 4.3.0 set script translations
     * @since 4.0.0
     */
    public function loadBlockEditorAssets(): void
    {
        if (!is_admin()) {
            return;
        }

        give(LoadCampaignAdminOptions::class)();

        $handleName = 'givewp-campaign-blocks';
        $scriptAsset = ScriptAsset::get(GIVE_PLUGIN_DIR . 'build/campaignBlocks.asset.php');

        wp_register_script(
            $handleName,
            GIVE_PLUGIN_URL . 'build/campaignBlocks.js',
            $scriptAsset['dependencies'],
            $scriptAsset['version'],
            true
        );
        wp_enqueue_script($handleName);

        Language::setScriptTranslations($handleName);

        wp_enqueue_style(
            $handleName,
            GIVE_PLUGIN_URL . 'build/campaignBlocks.css',
            ['wp-components'],
            $scriptAsset['version']
        );

        $handleName = 'givewp-campaign-landing-page-blocks';
        $scriptAsset = ScriptAsset::get(GIVE_PLUGIN_DIR . 'build/campaignBlocksLandingPage.asset.php');

        wp_register_script(
            $handleName,
            GIVE_PLUGIN_URL . 'build/campaignBlocksLandingPage.js',
            $scriptAsset['dependencies'],
            $scriptAsset['version'],
            true
        );
        wp_enqueue_script($handleName);

        Language::setScriptTranslations($handleName);

        wp_enqueue_style(
            $handleName,
            GIVE_PLUGIN_URL . 'build/campaignBlocksLandingPage.css',
            ['wp-components'],
            $scriptAsset['version']
        );

    }

    /**
     * @since 4.0.0
     */
    private function registerSharedStyles(): void
    {
        wp_enqueue_style('givewp-design-system-foundation');
        wp_enqueue_style(
            'givewp-campaign-blocks-fonts',
            'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap'
        );
    }

    /**
     * @since 4.6.1
     */
    private function loadCampaignPublicOptions(): void
    {
        add_action('wp_enqueue_scripts', function () {
            foreach ($this->campaignBlocks as $block) {
                if (has_block($block->name)) {
                    give(LoadCampaignPublicOptions::class)();
                    break;
                }
            }
        });
    }
}