ActionScheduler_StoreSchema::get_table_definition()protectedWC 1.0

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

Хуков нет.

Возвращает

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

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

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

Код ActionScheduler_StoreSchema::get_table_definition() WC 8.7.0

protected function get_table_definition( $table ) {
	global $wpdb;
	$table_name       = $wpdb->$table;
	$charset_collate  = $wpdb->get_charset_collate();
	$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
	$default_date     = self::DEFAULT_DATE;
	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 '';
	}
}