ActionScheduler_StoreSchema::get_table_definitionprotectedWC 1.0

Get table definition.

Метод класса: ActionScheduler_StoreSchema{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->get_table_definition( $table );
$table(строка) (обязательный)
Table name.

Код ActionScheduler_StoreSchema::get_table_definition() WC 9.9.5

protected function get_table_definition( $table ) {
	global $wpdb;
	$table_name      = $wpdb->$table;
	$charset_collate = $wpdb->get_charset_collate();
	$default_date    = self::DEFAULT_DATE;
	// phpcs:ignore Squiz.PHP.CommentedOutCode
	$max_index_length = 191; // @see wp_get_db_schema()

	$hook_status_scheduled_date_gmt_max_index_length = $max_index_length - 20 - 8; // - status, - scheduled_date_gmt

	switch ( $table ) {

		case self::ACTIONS_TABLE:
			return "CREATE TABLE {$table_name} (
			        action_id bigint(20) unsigned NOT NULL auto_increment,
			        hook varchar(191) NOT NULL,
			        status varchar(20) NOT NULL,
			        scheduled_date_gmt datetime NULL default '{$default_date}',
			        scheduled_date_local datetime NULL default '{$default_date}',
			        priority tinyint unsigned NOT NULL default '10',
			        args varchar($max_index_length),
			        schedule longtext,
			        group_id bigint(20) unsigned NOT NULL default '0',
			        attempts int(11) NOT NULL default '0',
			        last_attempt_gmt datetime NULL default '{$default_date}',
			        last_attempt_local datetime NULL default '{$default_date}',
			        claim_id bigint(20) unsigned NOT NULL default '0',
			        extended_args varchar(8000) DEFAULT NULL,
			        PRIMARY KEY  (action_id),
			        KEY hook_status_scheduled_date_gmt (hook($hook_status_scheduled_date_gmt_max_index_length), status, scheduled_date_gmt),
			        KEY status_scheduled_date_gmt (status, scheduled_date_gmt),
			        KEY scheduled_date_gmt (scheduled_date_gmt),
			        KEY args (args($max_index_length)),
			        KEY group_id (group_id),
			        KEY last_attempt_gmt (last_attempt_gmt),
			        KEY `claim_id_status_scheduled_date_gmt` (`claim_id`, `status`, `scheduled_date_gmt`)
			        ) $charset_collate";

		case self::CLAIMS_TABLE:
			return "CREATE TABLE {$table_name} (
			        claim_id bigint(20) unsigned NOT NULL auto_increment,
			        date_created_gmt datetime NULL default '{$default_date}',
			        PRIMARY KEY  (claim_id),
			        KEY date_created_gmt (date_created_gmt)
			        ) $charset_collate";

		case self::GROUPS_TABLE:
			return "CREATE TABLE {$table_name} (
			        group_id bigint(20) unsigned NOT NULL auto_increment,
			        slug varchar(255) NOT NULL,
			        PRIMARY KEY  (group_id),
			        KEY slug (slug($max_index_length))
			        ) $charset_collate";

		default:
			return '';
	}
}