289 lines
5.7 KiB
PHP
289 lines
5.7 KiB
PHP
<?php
|
|
/**
|
|
* Custom Table Loader
|
|
*
|
|
* Registers our custom tables.
|
|
*
|
|
* @package WP_Ultimo
|
|
* @subpackage Loaders
|
|
* @since 2.0.0
|
|
*/
|
|
|
|
namespace WP_Ultimo\Loaders;
|
|
|
|
// Exit if accessed directly
|
|
defined('ABSPATH') || exit;
|
|
|
|
/**
|
|
* Registers our custom tables.
|
|
*
|
|
* @since 2.0.0
|
|
*/
|
|
class Table_Loader {
|
|
|
|
use \WP_Ultimo\Traits\Singleton;
|
|
|
|
/**
|
|
* The Domain Mappings Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Domains\Domains_Table
|
|
*/
|
|
public $domain_table;
|
|
|
|
/**
|
|
* The Products Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Products\Products_Table
|
|
*/
|
|
public $product_table;
|
|
|
|
/**
|
|
* Loads the Products Meta Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Products\Products_Meta_Table
|
|
*/
|
|
public $productmeta_table;
|
|
|
|
/**
|
|
* The Discount Codes Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Discount_Codes\Discount_Codes_Table
|
|
*/
|
|
public $discount_code_table;
|
|
|
|
/**
|
|
* The Discount Codes Meta Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Discount_Codes\Discount_Codes_Meta_Table
|
|
*/
|
|
public $discount_codemeta_table;
|
|
|
|
/**
|
|
* The Sites Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Sites\Sites_Table
|
|
*/
|
|
public $site_table;
|
|
|
|
/**
|
|
* The Sites Meta Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Sites\Sites_Meta_Table
|
|
*/
|
|
public $sitemeta_table;
|
|
|
|
/**
|
|
* The Customer Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Customers\Customers_Table
|
|
*/
|
|
public $customer_table;
|
|
|
|
/**
|
|
* The Customer Meta Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Customers\Customers_Meta_Table
|
|
*/
|
|
public $customermeta_table;
|
|
|
|
/**
|
|
* The Memberships Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Memberships\Memberships_Table
|
|
*/
|
|
public $membership_table;
|
|
|
|
/**
|
|
* The Memberships Meta Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Memberships\Memberships_Meta_Table
|
|
*/
|
|
public $membershipmeta_table;
|
|
|
|
/**
|
|
* The Payments Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Payments\Payments_Table
|
|
*/
|
|
public $payment_table;
|
|
|
|
/**
|
|
* The Payments Meta Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Payments\Payments_Meta_Table
|
|
*/
|
|
public $paymentmeta_table;
|
|
|
|
/**
|
|
* The Posts Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Posts\Posts_Table
|
|
*/
|
|
public $post_table;
|
|
|
|
/**
|
|
* The Posts Meta Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Posts\Posts_Meta_Table
|
|
*/
|
|
public $postmeta_table;
|
|
|
|
/**
|
|
* The Webhook Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Webhooks\Webhooks_Table
|
|
*/
|
|
public $webhook_table;
|
|
|
|
/**
|
|
* The Event Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Events\Events_Table
|
|
*/
|
|
public $event_table;
|
|
|
|
/**
|
|
* The Checkout Forms Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Checkout_Forms\Checkout_Forms_Table
|
|
*/
|
|
public $checkout_form_table;
|
|
|
|
/**
|
|
* The Checkout Forms Meta Table
|
|
*
|
|
* @since 2.2.0
|
|
* @var \WP_Ultimo\Database\Checkout_Forms\Checkout_Forms_Meta_Table
|
|
*/
|
|
public $checkout_formmeta_table;
|
|
|
|
/**
|
|
* Loads the table objects for our custom tables.
|
|
*
|
|
* @since 2.0.0
|
|
* @return void
|
|
*/
|
|
public function init() {
|
|
/**
|
|
* Loads the Domain Mappings Table
|
|
*/
|
|
$this->domain_table = new \WP_Ultimo\Database\Domains\Domains_Table();
|
|
|
|
/**
|
|
* Loads the Products (and Meta) Tables
|
|
*/
|
|
$this->product_table = new \WP_Ultimo\Database\Products\Products_Table();
|
|
$this->productmeta_table = new \WP_Ultimo\Database\Products\Products_Meta_Table();
|
|
|
|
/**
|
|
* Loads the Discount Codes Table
|
|
*/
|
|
$this->discount_code_table = new \WP_Ultimo\Database\Discount_Codes\Discount_Codes_Table();
|
|
$this->discount_codemeta_table = new \WP_Ultimo\Database\Discount_Codes\Discount_Codes_Meta_Table();
|
|
|
|
/**
|
|
* Loads the Sites (and Meta) Tables
|
|
*/
|
|
$this->site_table = new \WP_Ultimo\Database\Sites\Sites_Table();
|
|
$this->sitemeta_table = new \WP_Ultimo\Database\Sites\Sites_Meta_Table();
|
|
|
|
/**
|
|
* Loads the Customer Table
|
|
*/
|
|
$this->customer_table = new \WP_Ultimo\Database\Customers\Customers_Table();
|
|
$this->customermeta_table = new \WP_Ultimo\Database\Customers\Customers_Meta_Table();
|
|
|
|
/**
|
|
* Loads the Memberships Table
|
|
*/
|
|
$this->membership_table = new \WP_Ultimo\Database\Memberships\Memberships_Table();
|
|
$this->membershipmeta_table = new \WP_Ultimo\Database\Memberships\Memberships_Meta_Table();
|
|
|
|
/**
|
|
* Loads the Payments Table
|
|
*/
|
|
$this->payment_table = new \WP_Ultimo\Database\Payments\Payments_Table();
|
|
$this->paymentmeta_table = new \WP_Ultimo\Database\Payments\Payments_Meta_Table();
|
|
|
|
/**
|
|
* Loads the Posts (and Meta) Tables
|
|
*/
|
|
$this->post_table = new \WP_Ultimo\Database\Posts\Posts_Table();
|
|
$this->postmeta_table = new \WP_Ultimo\Database\Posts\Posts_Meta_Table();
|
|
|
|
/**
|
|
* Loads the Webhook Table
|
|
*/
|
|
$this->webhook_table = new \WP_Ultimo\Database\Webhooks\Webhooks_Table();
|
|
|
|
/**
|
|
* Loads the Webhook Table
|
|
*/
|
|
$this->event_table = new \WP_Ultimo\Database\Events\Events_Table();
|
|
|
|
/**
|
|
* Loads the Checkout Forms Table
|
|
*/
|
|
$this->checkout_form_table = new \WP_Ultimo\Database\Checkout_Forms\Checkout_Forms_Table();
|
|
$this->checkout_formmeta_table = new \WP_Ultimo\Database\Checkout_Forms\Checkout_Forms_Meta_Table();
|
|
|
|
} // end init;
|
|
|
|
/**
|
|
* Returns all the table objects.
|
|
*
|
|
* @since 2.0.0
|
|
* @return array
|
|
*/
|
|
public function get_tables() {
|
|
|
|
return get_object_vars($this);
|
|
|
|
} // end get_tables;
|
|
|
|
/**
|
|
* Checks if we have all the tables installed.
|
|
*
|
|
* @since 2.0.0
|
|
* @return boolean
|
|
*/
|
|
public function is_installed() {
|
|
|
|
$all_installed = true;
|
|
|
|
$tables = $this->get_tables();
|
|
|
|
foreach ($tables as $table) {
|
|
|
|
if (!$table->exists()) {
|
|
|
|
$all_installed = false;
|
|
|
|
} // end if;
|
|
|
|
} // end foreach;
|
|
|
|
return $all_installed;
|
|
|
|
} // end is_installed;
|
|
|
|
} // end class Table_Loader;
|