HEX
Server: nginx/1.24.0
System: Linux webserver 6.8.0-59-generic #61-Ubuntu SMP PREEMPT_DYNAMIC Fri Apr 11 23:16:11 UTC 2025 x86_64
User: wpuser (1002)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /opt/wpsites/datainsightnow.com/wp-content/plugins/essential-blocks/blocks/FluentForms.php
<?php

namespace EssentialBlocks\blocks;

use EssentialBlocks\Core\Block;
use EssentialBlocks\Utils\Helper;
use FluentForm\App\Helpers\Helper as FluentFormHelper;

class FluentForms extends Block {
    protected $version;

    protected $attributes = [
        'blockId' => [
            'type' => 'string'
        ],
        'formId'  => [
            'type' => 'string'
        ]
    ];

    protected $frontend_styles = [
        'essential-blocks-fluentform-public-default-frontend',
        'essential-blocks-fluent-form-styles'
    ];

    protected $editor_styles = 'essential-blocks-fluentform-public-default';

    public function __construct() {
        $this->version = defined( 'FLUENTFORM_VERSION' ) ? FLUENTFORM_VERSION : ESSENTIAL_BLOCKS_VERSION;
    }

    /**
     * Unique name of the block.
     *
     * @return string
     */
    public function get_name() {
        return 'fluent-forms';
    }

    public function can_enable() {
        return in_array( 'fluentform/fluentform.php', apply_filters( 'active_plugins', get_option( 'active_plugins', [] ) ) );
    }

    /**
     * Register all other scripts
     *
     * @return void
     */
    public function register_scripts() {

        $this->assets_manager->register(
            'fluent-form-styles',
            plugins_url() . '/fluentform/assets/css/fluent-forms-public.css'
        );
        $this->assets_manager->register(
            'fluentform-public-default',
            plugins_url() . '/fluentform/assets/css/fluentform-public-default.css',
            [
                'essential-blocks-fluent-form-styles',
                'essential-blocks-editor-css'
            ]
        );
        $this->assets_manager->register(
            'fluentform-public-default-frontend',
            plugins_url() . '/fluentform/assets/css/fluentform-public-default.css',
            ['essential-blocks-fluent-form-styles']
        );
    }

    /**
     * Get form meta using FluentForm Helpers.
     *
     * @param mixed $id
     *
     * @return mixed
     *
     * @suppress PHP0413
     */
    public static function get_form_meta( $id ) {
        return FluentFormHelper::getFormMeta( $id, 'template_name' );
    }

    /**
     * Get FluentForms List
     *
     * @return array
     */
    public static function form_list() {
        $options = [];

        if ( defined( 'FLUENTFORM' ) ) {
            global $wpdb;
            $options[0]['value'] = '';
            $options[0]['label'] = __( 'Select a form', 'essential-blocks' );
            $result              = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}fluentform_forms" );
            if ( $result ) {
                foreach ( $result as $key => $form ) {
                    $options[$key + 1]['value'] = $form->id;
                    $options[$key + 1]['label'] = $form->title;
                    $options[$key + 1]['attr']  = self::get_form_meta( $form->id );
                }
            }
        }
        return $options;
    }

    public function render_callback( $attributes, $content ) {
        if ( ! defined( 'FLUENTFORM' ) || is_admin() ) {
            return;
        }

        ob_start();
        Helper::views(
            'forms/fluent-forms',
            wp_parse_args(
                $attributes,
                [
                    'classHook'           => '',
                    'formId'              => '',
                    'customCheckboxStyle' => false,
                    'showLabels'          => true,
                    'showPlaceholder'     => true,
                    'showErrorMessage'    => true,
                    'formAlignment'       => 'none',
                    'wrapper_attributes'  => get_block_wrapper_attributes(),
                    'block_object'        => $this
                ]
            )
        );
        return ob_get_clean();
    }
}