prefix . 'asenha_failed_logins'; if ( ! empty( $wpdb->charset ) ) { $charset_collation_sql = "DEFAULT CHARACTER SET $wpdb->charset"; } if ( ! empty( $wpdb->collate ) ) { $charset_collation_sql .= " COLLATE $wpdb->collate"; } // Drop table if already exists $wpdb->query("DROP TABLE IF EXISTS `". $table_name ."`"); // Create database table. This procedure may also be called $sql = "CREATE TABLE {$table_name} ( id int(6) unsigned NOT NULL auto_increment, ip_address varchar(40) NOT NULL DEFAULT '', username varchar(24) NOT NULL DEFAULT '', fail_count int(10) NOT NULL DEFAULT '0', lockout_count int(10) NOT NULL DEFAULT '0', request_uri varchar(24) NOT NULL DEFAULT '', unixtime int(10) NOT NULL DEFAULT '0', datetime_wp varchar(36) NOT NULL DEFAULT '', -- datetime_utc datetime NULL DEFAULT CURRENT_TIMESTAMP, info varchar(64) NOT NULL DEFAULT '', UNIQUE (ip_address), PRIMARY KEY (id) ) {$charset_collation_sql}"; require_once ABSPATH . '/wp-admin/includes/upgrade.php'; dbDelta( $sql ); return true; } /** * Create email delivery log table for Email Delivery module * * @since 7.1.0 */ public function create_email_delivery_log_table() { global $wpdb; $table_name = $wpdb->prefix . 'asenha_email_delivery'; if ( ! empty( $wpdb->charset ) ) { $charset_collation_sql = "DEFAULT CHARACTER SET $wpdb->charset"; } if ( ! empty( $wpdb->collate ) ) { $charset_collation_sql .= " COLLATE $wpdb->collate"; } // Drop table if already exists $wpdb->query("DROP TABLE IF EXISTS `". $table_name ."`"); // Create database table. This procedure may also be called $sql = "CREATE TABLE {$table_name} ( id int(6) unsigned NOT NULL auto_increment, status enum('successful','failed','unknown') NOT NULL DEFAULT 'unknown', error varchar(250) NOT NULL DEFAULT '', subject varchar(250) NOT NULL DEFAULT '', message longtext NOT NULL DEFAULT '', send_to varchar(256) NOT NULL DEFAULT '', sender varchar(256) NOT NULL DEFAULT '', reply_to varchar(256) NOT NULL DEFAULT '', headers text NOT NULL DEFAULT '', content_type text NOT NULL DEFAULT '', attachments text NOT NULL DEFAULT '', backtrace text NOT NULL DEFAULT '', processor text NOT NULL DEFAULT '', sent_on datetime NOT NULL DEFAULT '0000-00-00 00:00:00', sent_on_unixtime int(10) NOT NULL DEFAULT '0', extra longtext NOT NULL DEFAULT '', PRIMARY KEY (id) ) {$charset_collation_sql}"; require_once ABSPATH . '/wp-admin/includes/upgrade.php'; dbDelta( $sql ); return true; } /** * Create tables for the Form Builder module * * @since 7.8.0 */ public function create_form_builder_tables() { global $wpdb; if ( ! empty( $wpdb->charset ) ) { $charset_collation_sql = "DEFAULT CHARACTER SET $wpdb->charset"; } if ( ! empty( $wpdb->collate ) ) { $charset_collation_sql .= " COLLATE $wpdb->collate"; } require_once ABSPATH . '/wp-admin/includes/upgrade.php'; $fields_table_name = $wpdb->prefix . 'asenha_formbuilder_fields'; $forms_table_name = $wpdb->prefix . 'asenha_formbuilder_forms'; $entries_table_name = $wpdb->prefix . 'asenha_formbuilder_entries'; $entry_meta_table_name = $wpdb->prefix . 'asenha_formbuilder_entry_meta'; $sql = "CREATE TABLE {$fields_table_name} ( id bigint(20) NOT NULL AUTO_INCREMENT, field_key varchar(100) NULL, name text NULL, description longtext NULL, type text NULL, default_value longtext NULL, options longtext NULL, field_order int(11) DEFAULT 0, required int(1) NULL, field_options longtext NULL, form_id int(11) NULL, created_at datetime NOT NULL, PRIMARY KEY (id), KEY form_id (form_id), UNIQUE KEY field_key (field_key) ) {$charset_collation_sql}"; dbDelta( $sql ); $sql = "CREATE TABLE {$forms_table_name} ( id int(11) NOT NULL AUTO_INCREMENT, form_key varchar(100) NULL, name varchar(255) NULL, description text NULL, status varchar(255) NULL, options longtext NULL, settings longtext NULL, styles longtext NULL, created_at datetime NOT NULL, PRIMARY KEY (id), UNIQUE KEY form_key (form_key) ) {$charset_collation_sql}"; dbDelta( $sql ); $sql = "CREATE TABLE {$entries_table_name} ( id bigint(20) NOT NULL AUTO_INCREMENT, ip text NULL, form_id bigint(20) NULL, user_id bigint(20) NULL, delivery_status tinyint(1) DEFAULT 0, status varchar(255) NULL, created_at datetime NOT NULL, PRIMARY KEY (id), KEY form_id (form_id), KEY user_id (user_id) ) {$charset_collation_sql}"; dbDelta( $sql ); $sql = "CREATE TABLE {$entry_meta_table_name} ( id bigint(20) NOT NULL AUTO_INCREMENT, meta_value longtext 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) ) {$charset_collation_sql}"; dbDelta( $sql ); return true; } /** * Part of Disable Embeds module * Remove embeds rewrite rules on plugin activation. * * @link https://plugins.trac.wordpress.org/browser/disable-embeds/tags/1.5.0/disable-embeds.php#L101 * @since 8.0.0 */ public function disable_embeds_remove_rewrite_rules() { $common_methods = new Common_Methods; add_filter( 'rewrite_rules_array', [ $common_methods, 'disable_embeds_rewrites' ] ); flush_rewrite_rules( false ); } /** * Deferred flush for the Disable Embeds module. * Runs on init (late priority) so all CPTs/taxonomies are already registered. * * @since 8.5.1 */ public function maybe_flush_disable_embeds_rewrite_rules() { $options = get_option( ASENHA_SLUG_U ); if ( ! is_array( $options ) ) { return; } if ( isset( $options['disable_embeds_flush_rewrite_rules_needed'] ) && true === $options['disable_embeds_flush_rewrite_rules_needed'] ) { $common_methods = new Common_Methods; add_filter( 'rewrite_rules_array', [ $common_methods, 'disable_embeds_rewrites' ] ); flush_rewrite_rules( false ); $options['disable_embeds_flush_rewrite_rules_needed'] = false; update_option( ASENHA_SLUG_U, $options, true ); } } }