20_230_601, ]; /** * Discount_Code constructor. * * @access public * @since 2.0.0 * @return void */ public function __construct() { parent::__construct(); } /** * Setup the database schema * * @access protected * @since 2.0.0 * @return void */ protected function set_schema(): void { $this->schema = "id bigint(20) NOT NULL auto_increment, name tinytext NOT NULL DEFAULT '', code varchar(20) NOT NULL default '', description longtext NULL default '', uses int default '0', max_uses int, apply_to_renewals tinyint(4) default 0, type enum('percentage', 'absolute') NOT NULL default 'percentage', value decimal(13,4) default 0, setup_fee_type enum('percentage', 'absolute') NOT NULL default 'percentage', setup_fee_value decimal(13,4) default 0, active tinyint(4) default 1, date_start datetime NULL, date_expiration datetime NULL, date_created datetime NULL, date_modified datetime NULL, PRIMARY KEY (id)"; } /** * Fixes the datetime columns to accept null. * * @since 2.1.2 */ protected function __20230601(): bool { $null_columns = [ 'date_created', 'date_modified', ]; foreach ($null_columns as $column) { $query = "ALTER TABLE {$this->table_name} MODIFY COLUMN `{$column}` datetime DEFAULT NULL;"; $result = $this->get_db()->query($query); if ( ! $this->is_success($result)) { return false; } } return true; } }