93 lines
2.1 KiB
PHP

<?php
/**
* Configuration file - Database connection and WooCommerce client
*/
use Automattic\WooCommerce\Client;
/**
* Get database connection (Sales Panel database)
* @return mysqli
*/
function getDatabase(): mysqli
{
static $db = null;
if ($db === null) {
$db = new mysqli(
$_ENV['DB_HOST'],
$_ENV['DB_USER'],
$_ENV['DB_PASS'],
$_ENV['DB_NAME']
);
if ($db->connect_error) {
header('Content-Type: application/json');
http_response_code(500);
die(json_encode(['error' => 'Database connectie mislukt']));
}
$db->set_charset('utf8mb4');
}
return $db;
}
/**
* Get WooCommerce database connection (WordPress/WooCommerce database)
* Used for accessing plugin tables like wp_wdr_rules
* @return mysqli
*/
function getWooCommerceDatabase(): mysqli
{
static $wcDb = null;
if ($wcDb === null) {
$wcDb = new mysqli(
$_ENV['WC_DB_HOST'] ?? $_ENV['DB_HOST'],
$_ENV['WC_DB_USER'] ?? $_ENV['DB_USER'],
$_ENV['WC_DB_PASS'] ?? $_ENV['DB_PASS'],
$_ENV['WC_DB_NAME'] ?? $_ENV['DB_NAME']
);
if ($wcDb->connect_error) {
header('Content-Type: application/json');
http_response_code(500);
die(json_encode(['error' => 'WooCommerce database connectie mislukt: ' . $wcDb->connect_error]));
}
$wcDb->set_charset('utf8mb4');
}
return $wcDb;
}
/**
* Get WooCommerce database table prefix
* @return string
*/
function getWooCommerceDbPrefix(): string
{
return $_ENV['WC_DB_PREFIX'] ?? 'wp_';
}
/**
* Get WooCommerce client
* @return Client
*/
function getWooCommerce(): Client
{
static $woocommerce = null;
if ($woocommerce === null) {
$woocommerce = new Client(
$_ENV['WC_URL'],
$_ENV['WC_KEY'],
$_ENV['WC_SECRET'],
['version' => 'wc/v3', 'verify_ssl' => false]
);
}
return $woocommerce;
}