HEX
Server: Apache/2.4.65 (Debian)
System: Linux web6 5.10.0-36-amd64 #1 SMP Debian 5.10.244-1 (2025-09-29) x86_64
User: innocamp (1028)
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: /home/innocamp/public_html/wp-content/plugins/WP-FormBuilder/admin/classes/HashFormCreateTable.php
<?php

defined('ABSPATH') || die();

class HashFormCreateTable {

    public $fields;
    public $forms;
    public $entries;
    public $entry_metas;

    public function __construct() {
        global $wpdb;
        $this->fields = $wpdb->prefix . 'hashform_fields';
        $this->forms = $wpdb->prefix . 'hashform_forms';
        $this->entries = $wpdb->prefix . 'hashform_entries';
        $this->entry_metas = $wpdb->prefix . 'hashform_entry_meta';
    }

    public function upgrade() {
        global $wpdb;
        flush_rewrite_rules();
        require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
        $this->create_tables();
    }

    public function collation() {
        global $wpdb;
        if (!$wpdb->has_cap('collation'))
            return '';
        return $wpdb->get_charset_collate();
    }

    private function create_tables() {
        $charset_collate = $this->collation();
        $sql = array();
        $sql[] = 'CREATE TABLE ' . $this->fields . ' (
		id BIGINT(20) NOT NULL auto_increment,
		field_key varchar(100) default NULL,
                name text default NULL,
                description longtext default NULL,
                type text default NULL,
                default_value longtext default NULL,
                options longtext default NULL,
                field_order int(11) default 0,
                required int(1) default NULL,
                field_options longtext default NULL,
                form_id int(11) default NULL,
                created_at datetime NOT NULL,
                PRIMARY KEY  (id),
                KEY form_id (form_id),
                UNIQUE KEY field_key (field_key)
        )';
        $sql[] = 'CREATE TABLE ' . $this->forms . ' (
                id int(11) NOT NULL auto_increment,
		form_key varchar(100) default NULL,
                name varchar(255) default NULL,
                description text default NULL,
                status varchar(255) default NULL,
                options longtext default NULL,
                settings longtext default NULL,
                styles longtext default NULL,
                created_at datetime NOT NULL,
                PRIMARY KEY  (id),
                UNIQUE KEY form_key (form_key)
        )';
        $sql[] = 'CREATE TABLE ' . $this->entries . ' (
		id BIGINT(20) NOT NULL auto_increment,
                ip text default NULL,
		form_id BIGINT(20) default NULL,
		user_id BIGINT(20) default NULL,
		delivery_status tinyint(1) default 0,
                status varchar(255) default NULL,
                created_at datetime NOT NULL,
                PRIMARY KEY  (id),
                KEY form_id (form_id),
                KEY user_id (user_id)
        )';
        $sql[] = 'CREATE TABLE ' . $this->entry_metas . ' (
		id BIGINT(20) NOT NULL auto_increment,
		meta_value longtext default NULL,
		field_id BIGINT(20) NOT NULL,
		item_id BIGINT(20) NOT NULL,
                created_at datetime NOT NULL,
                PRIMARY KEY  (id),
                KEY field_id (field_id),
                KEY item_id (item_id)
        )';
        foreach ($sql as $q) {
            if (function_exists('dbDelta')) {
                dbDelta($q . $charset_collate . ';');
            } else {
                global $wpdb;
                $wpdb->query($q . $charset_collate); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
            }
            unset($q);
        }
    }

}