automatewoo/includes/Database_Tables.php
fei-source 47d3c9a8b6 Update to v6.2.2
Source: GrootMade/Festinger Vault
2026-03-15 08:31:15 +08:00

82 lines
1.8 KiB
PHP

<?php
namespace AutomateWoo;
/**
* @class Database_Tables
* @since 2.8.2
*/
class Database_Tables extends Registry {
/** @var array */
public static $includes;
/** @var Database_Table[] */
public static $loaded = [];
/**
* Updates any tables as required
*/
public static function install_tables() {
global $wpdb;
$wpdb->hide_errors();
foreach ( self::get_all() as $table ) {
$table->install();
}
}
/**
* Load the application Database Tables
*
* @return array The DatabaseTables classes to be loaded
*/
public static function load_includes() {
$includes = [
'carts' => DatabaseTables\Carts::class,
'customer-meta' => DatabaseTables\CustomerMeta::class,
'customers' => DatabaseTables\Customers::class,
'guest-meta' => DatabaseTables\GuestMeta::class,
'guests' => DatabaseTables\Guests::class,
'log-meta' => DatabaseTables\LogMeta::class,
'logs' => DatabaseTables\Logs::class,
'queue' => DatabaseTables\Queue::class,
'queue-meta' => DatabaseTables\QueueMeta::class,
];
return apply_filters( 'automatewoo/database_tables', $includes );
}
/**
* Get all the database tables
*
* @return Database_Table[] An array with all the database tables
*/
public static function get_all() {
return parent::get_all();
}
/**
* Get a database table object.
*
* @param string $table_id The table to get
*
* @return Database_Table The database table class
*
* @throws Exception When table failed to load.
*/
public static function get( $table_id ) {
$table = parent::get( $table_id );
if ( $table instanceof Database_Table ) {
return $table;
}
/* translators: Database table name. */
throw new Exception( sprintf( esc_html__( "Failed to load the '%s' database table.", 'automatewoo' ), esc_html( $table_id ) ) );
}
}