Files
Commerce/functions.php
“VeLiTi” b9193fc3dc test branch
2025-05-26 11:51:25 +02:00

723 lines
28 KiB
PHP

<?php
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++
// PDF creator +++++++++++++++++++++++++++++++++++++++
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++
include dirname(__FILE__).'/custom/customfunctions.php';
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++
// PDF creator +++++++++++++++++++++++++++++++++++++++
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++
// include autoloader
require dirname(__FILE__).'/lib/dompdf/autoload.inc.php';
// reference the Dompdf namespace
use Dompdf\Dompdf;
// instantiate and use the dompdf class
use Dompdf\Options;
//+++++++++++++++++++++++++++++++++++++++++++
//dompdf libary +++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++
$options = new Options();
$options->set('isRemoteEnabled', true);
$dompdf = new Dompdf($options);
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++
// include PHP Mailer+++++++++++++++++++++++++++++++++++++
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require dirname(__FILE__).'/lib/mail/PHPMailer.php';
require dirname(__FILE__).'/lib/mail/SMTP.php';
require dirname(__FILE__).'/lib/mail/Exception.php';
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Send Mail via PHPMailer++++++++++++++++++++++++++++++++
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++
function send_mail_by_PHPMailer($to, $subject, $message, $attachment, $attachment_name){
// SEND MAIL by PHP MAILER
$mail = new PHPMailer(true);
$mail->isSMTP(); // Use SMTP
$mail->CharSet = 'UTF-8';
$mail->Host = email_host_name; // Specify SMTP server
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Use TLS encryption
$mail->SMTPAuth = true; // Auth. SMTP
//$mail->SMTPDebug = 3; // To view debug output
$mail->Username = email; // Mail who send by PHPMailer
$mail->Password = email_outgoing_pw; // your pass mail box
$mail->SMTPSecure = email_outgoing_security; // Accept SSL
$mail->Port = email_outgoing_port; // port of your out server
$mail->setFrom(email, mail_from); // Mail to send at
$mail->addAddress($to); // Add sender
$mail->addReplyTo(email_reply_to); // Adress to reply
$mail->isHTML(true); // use HTML message
$mail->Subject = $subject;
$mail->Body = $message;
if (!empty($attachment) || $attachment != ''){
$mail->AddStringAttachment($attachment, $attachment_name, 'base64', 'application/pdf');
}
// SEND
if( !$mail->send() ){
// render error if it is
$tab = array('error' => 'Mailer Error: '.$mail->ErrorInfo );
debuglog(json_encode($tab));
exit;
}
else{
// return true if message is send
return true;
}
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Generated PDF ++++++++++++++++++++++++++++++++
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++
function generatedPDF($input,$filename){
$options = new Options();
$options->set('isRemoteEnabled', true);
$dompdf = new Dompdf($options);
$dompdf->loadHtml($input);
// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'portrait');
// Render the HTML as PDF
$dompdf->render();
ob_end_clean();
$dompdf->stream($filename.'.pdf', array("Attachment" => false));
}
// Function that will connect to the MySQL database
function pdo_connect_mysql() {
try {
// Connect to the MySQL database using the PDO interface
$pdo = new PDO('mysql:host=' . db_host . ';dbname=' . db_name . ';charset=utf8', db_user, db_pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;
} catch (PDOException $exception) {
// Could not connect to the MySQL database! If you encounter this error, ensure your db settings are correct in the config file!
exit('Failed to connect to database!');
}
}
// Function to retrieve a product from cart by the ID and options string
function &get_cart_product($id, $options) {
$p = null;
if (isset($_SESSION['cart'])) {
foreach ($_SESSION['cart'] as &$product) {
if ($product['id'] == $id && $product['options'] == $options) {
$p = &$product;
return $p;
}
}
}
return $p;
}
// Populate categories function
function populate_categories($categories, $selected = 0, $parent_id = 0, $n = 0) {
$html = '';
foreach ($categories as $category) {
if ($parent_id == $category['parent_id'] && $category['status'] == 1) {
$html .= '<option value="' . $category['id'] . '"' . ($selected == $category['id'] ? ' selected' : '') . '>' . str_repeat('--', $n) . ' ' . $category['name'] . '</option>';
$html .= populate_categories($categories, $selected, $category['id'], $n+1);
}
}
return $html;
}
// Send order details email function
function send_order_details_email($email, $products, $first_name, $last_name, $address_street, $address_city, $address_state, $address_zip, $address_country, $subtotal, $discounttotal,$shippingtotal,$taxtotal,$total, $order_id) {
include './custom/translations/translations_'.strtoupper($_SESSION['country_code']).'.php';
// Send payment notification to webmaster
$address_name = htmlspecialchars($first_name ?? '', ENT_QUOTES).' '.htmlspecialchars($last_name ?? '', ENT_QUOTES);
if (email_notifications) {
$subject = $subject_order_notification;
$headers = 'From: ' . mail_from . "\r\n" . 'Reply-To: ' . $email . "\r\n" . 'Return-Path: ' . mail_from . "\r\n" . 'X-Mailer: PHP/' . phpversion() . "\r\n" . 'MIME-Version: 1.0' . "\r\n" . 'Content-Type: text/html; charset=UTF-8' . "\r\n";
ob_start();
include './custom/email/order-notification-template.php';
$order_notification_template = ob_get_clean();
send_mail_by_PHPMailer(email, $subject, $order_notification_template, '', '');
}
if (!mail_enabled) {
return;
}
$subject = $subject_new_order;
//$headers = 'From: ' . mail_from . "\r\n" . 'Reply-To: ' . mail_from . "\r\n" . 'Return-Path: ' . mail_from . "\r\n" . 'X-Mailer: PHP/' . phpversion() . "\r\n" . 'MIME-Version: 1.0' . "\r\n" . 'Content-Type: text/html; charset=UTF-8' . "\r\n";
ob_start();
include './custom/email/order-details-template.php';
$order_details_template = ob_get_clean();
send_mail_by_PHPMailer($email, $subject, $order_details_template, '', '');
}
//Send email to administrator for out of stock notification // only for registered users
function send_product_notification_email($email,$product_details){
include './custom/translations/translations_'.strtoupper($_SESSION['country_code']).'.php';
$subject = $subject_out_of_stock.' - '.$product_details;
//$headers = 'From: ' . mail_from . "\r\n" . 'Reply-To: ' . $email . "\r\n" . 'Return-Path: ' . mail_from . "\r\n" . 'X-Mailer: PHP/' . phpversion() . "\r\n" . 'MIME-Version: 1.0' . "\r\n" . 'Content-Type: text/html; charset=UTF-8' . "\r\n";
$message = $product_details.' are out of stock. Please notify '.$email.' when available';
//mail(email, $subject, $message, $headers);
send_mail_by_PHPMailer(email, $subject, $message, '', '');
}
// Template admin header
function template_admin_header($title, $selected = 'orders', $selected_child = 'view') {
$base_url = 'https://'.$_SERVER['SERVER_NAME'].'/';
$site_name = site_name;
$icon_image = icon_image;
$admin_links = '
<a href="index.php?page=settings"' . ($selected == 'settings' ? ' class="selected"' : '') . '><i class="fas fa-tools"></i>Settings</a>
<div class="sub">
<a href="index.php?page=countries"' . ($selected == 'countries' && $selected_child == '' ? ' class="selected"' : '') . '><span>&#9724;</span>Countries</a>
<a href="index.php?page=settings"' . ($selected == 'settings' && $selected_child == '' ? ' class="selected"' : '') . '><span>&#9724;</span>Settings</a>
<a href="index.php?page=language"' . ($selected == 'language' && $selected_child == '' ? ' class="selected"' : '') . '><span>&#9724;</span>Language</a>
</div>
<a href="index.php?page=emailtemplates"' . ($selected == 'emailtemplates' ? ' class="selected"' : '') . '><i class="fas fa-envelope"></i>Email Templates</a>
';
// DO NOT INDENT THE BELOW CODE
echo <<<EOT
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,minimum-scale=1">
<title>$title</title>
<link rel="icon" type="image/png" href="{$base_url}$icon_image">
<link href="admin.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v6.0.0/css/all.css">
</head>
<body class="admin">
<aside class="responsive-width-100 responsive-hidden">
<h1>$site_name</h1>
$admin_links
<div class="footer">
</div>
</aside>
<main class="responsive-width-100">
<header>
<a class="responsive-toggle" href="#">
<i class="fas fa-bars"></i>
</a>
<div class="space-between"></div>
<div class="dropdown right">
<i class="fas fa-user-circle"></i>
<div class="list">
<a href="index.php?page=account&id={$_SESSION['account_id']}">Edit Profile</a>
<a href="index.php?page=logout">Logout</a>
</div>
</div>
</header>
EOT;
}
// Template admin footer
function template_admin_footer($js_script = '') {
$js_script = $js_script ? '<script>' . $js_script . '</script>' : '';
// DO NOT INDENT THE BELOW CODE
echo <<<EOT
</main>
<script src="admin.js"></script>
{$js_script}
</body>
</html>
EOT;
}
// Determine URL function
function url($url) {
if (rewrite_url) {
$url = preg_replace('/\&(.*?)\=/', '/', str_replace(['index.php?page=', 'index.php'], '', $url));
}
return base_url . $url;
}
// Routeing function
function routes($urls) {
foreach ($urls as $url => $file_path) {
$url = '/' . ltrim($url, '/');
$prefix = dirname($_SERVER['PHP_SELF']);
$uri = $_SERVER['REQUEST_URI'];
if (substr($uri, 0, strlen($prefix)) == $prefix) {
$uri = substr($uri, strlen($prefix));
}
$uri = '/' . ltrim($uri, '/');
$path = explode('/', parse_url($uri)['path']);
$routes = explode('/', $url);
$values = [];
foreach ($path as $pk => $pv) {
if (isset($routes[$pk]) && preg_match('/{(.*?)}/', $routes[$pk])) {
$var = str_replace(['{','}'], '', $routes[$pk]);
$routes[$pk] = preg_replace('/{(.*?)}/', $pv, $routes[$pk]);
$values[$var] = $pv;
}
}
if ($routes === $path && rewrite_url) {
foreach ($values as $k => $v) {
$_GET[$k] = $v;
}
return file_exists($file_path) ? $file_path : 'home.php';
}
}
if (rewrite_url) {
header('Location: ' . url('index.php'));
exit;
}
return null;
}
// Format bytes to human-readable format
function format_bytes($bytes) {
$i = floor(log($bytes, 1024));
return round($bytes / pow(1024, $i), [0,0,2,2,3][$i]).['B','KB','MB','GB','TB'][$i];
}
function getAccessoiries($clientsecret, $categoryID){
include './custom/translations/translations_'.strtoupper($_SESSION['country_code']).'.php';
//GET CATALOG DATA
$additional_products = ioAPIv2('/v2/catalog/category='.$categoryID,'',$clientsecret);
$additional_products = json_decode($additional_products,true);
$output ='<div class="content-wrapper">
<div class="add_products">
<h2>'.($h2_cart_suggestions ?? 'Suggestions').'</h2>
';
foreach ($additional_products as $additional_product){
if (!empty($additional_product['full_path'])){
$url_contents = 'index.php?page=product&id=';
$url_contents .= $additional_product['url_slug'] ? $additional_product['url_slug'] : $additional_product['rowID'];
$additional_product_url = url($url_contents);
$output .='
<div class="add_product">
<a href="'.$additional_product_url.'" id="'.$additional_product['rowID'].'A" class="product">
<img src="'.img_url.$additional_product['full_path'].'" id="'.$additional_product['rowID'].'" width="50" height="50" alt="'.$additional_product['productname'].'">
</a>
<form id="product-form" action="" method="post">
<input id="product" type="hidden" name="product[product]" value="'.$additional_product['rowID'].'">
<input id="product" type="hidden" name="product[version]" value="'.($additional_product['version_id'] ?? '').'">
<input id="product" type="hidden" name="product[quantity]" value="1">
<input type="submit" name="accessoiries" value="+">
</form>
<a href="'.$additional_product_url.'" id="'.$additional_product['rowID'].'A" class="product">
<span class="add_name">'.$additional_product['productname'].'</span>
<span class="add_price"> '.currency_code.'.'.number_format($additional_product['price'],2).'
';
if ($additional_product['rrp'] > 0){
$output .='
<span class="add_rrp">'.currency_code.''.number_format($additional_product['rrp'],2).'</span>
';
}
$output .='
</a>
</div>
';
}
}
$output .='</div></div>';
return $output;
}
function getSamples($clientsecret, $categoryID){
include './custom/translations/translations_'.strtoupper($_SESSION['country_code']).'.php';
//GET CATALOG DATA
$additional_products = ioAPIv2('/v2/catalog/category='.$categoryID,'',$clientsecret);
$additional_products = json_decode($additional_products,true);
$output ='<div class="content-wrapper">
<h2 style="font-weight:normal;">'.($h2_cart_samples ?? 'Samples').'</h2>
<div class="add_sample_button"><button id="slideLeft" class="scrollButton" type="button"><</button></div>
<div id="add_samples_container" class="add_samples">
';
foreach ($additional_products as $additional_product){
if (!empty($additional_product['full_path'])){
//Pricing override for samples
if (sample_pricing_override){
$additional_product['price'] = sample_pricing_override_price; // Price override for free sample! Remove for standard price
}
$url_contents = 'index.php?page=product&id=';
$url_contents .= $additional_product['url_slug'] ? $additional_product['url_slug'] : $additional_product['rowID'];
$additional_product_url = url($url_contents);
$output .='
<div class="add_sample">
<img src="'.img_url.$additional_product['full_path'].'" id="'.$additional_product['rowID'].'" width="50" height="50" alt="'.$additional_product['productname'].'">
<form id="product-form" action="" method="post">
<input type="hidden" name="add_product_id" value="'.$additional_product['rowID'].'">
<input type="hidden" name="add_product_price" value="'.$additional_product['price'].'">
<input type="hidden" name="add_product_weight" value="'.($additional_product['weight'] ?? 0).'">
<input type="submit" name="samples" value="+">
</form>
<a href="'.$additional_product_url.'" id="'.$additional_product['rowID'].'A" class="product">
<span class="add_name">'.$additional_product['productname'].'</span>';
if ($additional_product['price'] > 0){
$output .='
<span class="add_price"> '.currency_code.'.'.number_format($additional_product['price'],2).'
';
}
if ($additional_product['rrp'] > 0){
$output .='
<span class="add_rrp">'.currency_code.''.number_format($additional_product['rrp'],2).'</span>
';
}
$output .='
</a>
</div>
';
}
}
$output .='
</div>
<div class="add_sample_button"><button id="slideRight" class="scrollButton" type="button">></button></div>
</div>';
return $output;
}
function createGiftCart($pdo, $orderID){
$giftcard_ID = giftcard_id;
//Check if Giftcard is ordered
$stmt = $pdo->prepare('SELECT t.payer_email as email, ti.id as id, ti.txn_id as txn, ti.item_price as item_price, ti.item_quantity as item_quantity FROM transactions t INNER JOIN transactions_items ti ON t.id = ti.txn_id INNER JOIN products_categories p ON ti.item_id = p.product_id WHERE p.category_id = ? AND t.txn_id = ?');
$stmt->execute([$giftcard_ID,$orderID]);
$giftcards = $stmt->fetchAll(PDO::FETCH_ASSOC);
if ($giftcards) {
foreach ($giftcards as $giftcard) {
//For each quantity
$x = 0;
while ($x < $giftcard['item_quantity']){
//Generate discount code = TXN/ID/X
$discount_code = $giftcard['txn'].'#'.$giftcard['id'].'#'.$x;
$value = $giftcard['item_price'];
// Get the current date
$start_date = date("Y-m-d H:i:s");
$end_date = date("Y-m-d H:i:s", strtotime("+5 years"));;
//Check if Giftcard already exists
$stmt = $pdo->prepare('SELECT * from discounts WHERE discount_code = ?');
$stmt->execute([$discount_code]);
$discount_exist = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (empty($discount_exist) || $discount_exist == '') {
//Insert Giftcard
//SQL Insert
$stmt = $pdo->prepare('INSERT INTO discounts (discount_code,discount_type,discount_value,start_date,end_date) VALUES (?,?,?,?,?)');
$stmt->execute([$discount_code, 'Fixed', $value, $start_date, $end_date]);
}
$x++;
}
}
}
}
function useGiftCart($pdo, $giftcard){
$discount_code = $giftcard;
// Get the current date
$end_date = date("Y-m-d H:i:s");
//Check if Giftcard already exists
$stmt = $pdo->prepare('SELECT * from discounts WHERE discount_code = ?');
$stmt->execute([$discount_code]);
$discount_exist = $stmt->fetchAll(PDO::FETCH_ASSOC);
//Dump parameters
//$stmt->debugDumpParams();
if (!empty($discount_exist) || $discount_exist != '') {
//Update Giftcard end data
$stmt = $pdo->prepare('UPDATE discounts SET end_date = ? WHERE discount_code = ?');
$stmt->execute([$end_date,$discount_code]);
}
}
function removeGiftCart($pdo, $orderID){
$discount_code = $orderID.'#%#%';
//Check if Giftcard already exists
$stmt = $pdo->prepare('SELECT * from discounts WHERE discount_code like ?');
$stmt->execute([$discount_code]);
$discount_exist = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (!empty($discount_exist) || $discount_exist != '') {
//Remove all Giftcards related to order
$stmt = $pdo->prepare('DELETE FROM discounts WHERE discount_code like ?');
$stmt->execute([$discount_code]);
}
}
function generateInvoice($invoice_cust,$orderID,$user_language){
//Variables
$customer_email = htmlspecialchars($invoice_cust['customer']['email'] ?? '', ENT_QUOTES);
//Generate invoice
ob_start();
include dirname(__FILE__).'/custom/email/order-invoice-template.php';
$order_invoice_template = ob_get_clean();
return array($order_invoice_template,$customer_email,$orderId);
}
function freeShipment($price, $type){
include './custom/translations/translations_'.strtoupper($_SESSION['country_code']).'.php';
//Free delivery indicator
$delivery_status = ($price >= free_shipment_price) ? $free_delivery : $non_free_delivery.currency_code.free_shipment_price.',-';
$style = ($delivery_status == $free_delivery) ? 'style="color:green;font-weight: bold;"' : 'style="color:gray;font-weight: lighter;"';
$shipment = '
<'.$type.' class="delivery">
<p '.$style.'> '.$delivery_status.'</p>
</'.$type.'>';
return $shipment;
}
function consent()
{
include './custom/translations/translations_'.strtoupper($_SESSION['country_code']).'.php';
$age_consent = '
<div id="simple-cookie-consent">
<div class="cookie-consent-container">
<div class="cookie-consent-notice">
<h4>'.$age_consent_h4.'</h4>
<hr>
<p>'.$age_consent_text.'</p>
</div>
<div class="cookie-consent-selection">
<form action="'.htmlspecialchars($_SERVER["PHP_SELF"]).'" method="POST">
<input type="submit" name="age_consent_allow" value="'.$age_consent_btn_allow.'" class="cookie-consent-allow">
<input type="submit" name="age_consent_deny" value="'.$age_consent_btn_deny.'" class="cookie-consent-deny">
</form>
</div>
</div>
</div>
';
return $age_consent;
}
function banner()
{
include './custom/translations/translations_'.strtoupper($_SESSION['country_code']).'.php';
$banner = '
<div id="banner">
<div class="banner_container" style="background-image:url('.banner_background.');background-position: center center;">
<div class="banner_notice">
<h4>'.banner_wow.'</h4>
<hr>
<p>'.banner_text.'</p>
</div>
<div class="banner_selection">
<form action="'.htmlspecialchars($_SERVER["PHP_SELF"]).'" method="POST">
<input type="submit" name="banner_move" value="'.banner_btn_1.'" class="banner_allow">
<input type="submit" name="banner_stay" value="'.banner_btn_2.'" class="banner_deny">
</form>
</div>
</div>
</div>
';
return $banner;
}
function maintenanceMode()
{
include './custom/translations/translations_'.strtoupper($_SESSION['country_code']).'.php';
$maintenanceMode = '
<div id="simple-cookie-consent">
<div class="cookie-consent-container">
<div class="cookie-consent-notice">
<h4>'.$maintenanceMode_h4.'</h4>
<hr>
<p>'.$maintenanceMode_text.'</p>
</div>
<div class="cookie-consent-selection">
<form action="'.htmlspecialchars($_SERVER["PHP_SELF"]).'" method="POST">
<input type="submit" name="maintenanceMode" value="'.$maintenanceMode_btn.'" class="cookie-consent-allow">
</form>
</div>
</div>
</div>
';
return $maintenanceMode;
}
//++++++++++++++++++++++++++++++++++++++++
//HomePage Products
//++++++++++++++++++++++++++++++++++++++++
function getPictureID($pdo,$id,$config){
$stmt = $pdo->prepare('SELECT * FROM products_media where product_id = :product_id ORDER BY position ASC');
$stmt->bindValue(':product_id', $id, PDO::PARAM_INT);
$stmt->execute();
$product_media = $stmt->fetchAll(PDO::FETCH_ASSOC);
//Search for option_id
$option_profile = json_decode($config,true) ?? '';
if (!empty($option_profile) && $option_profile !=''){
foreach ($option_profile as $option){
if ($option['IMG_large_id'] == $product_media[0]['media_id']){
return $option['option_id'];
}
}
}
}
//++++++++++++++++++++++++++++++++++++++++
//HomePage Products
//++++++++++++++++++++++++++++++++++++++++
function highlightedProducts2($clientsecret,$categoryID,$range, $subtitle){
include './custom/translations/translations_'.strtoupper($_SESSION['country_code']).'.php';
//GET CATALOG DATA
$products = ioAPIv2('/v2/catalog/category='.$categoryID,'',$clientsecret);
$products = json_decode($products,true);
$section = '
<section class="watches-section">
<div class="container">
<div class="section-header">
<h2 class="section-title">'.($range ?? 'Featured Timepieces').'</h2>
<p class="section-subtitle">'.($subtitle ?? 'Explore our most popular and exquisite watch collections.').'</p>
</div>
<div class="product-slider">
<div class="product-container-slider">';
foreach ($products as $product){
$product_price = isset($product['price']) && $product['price'] > 0 ? floatval($product['price']) : 0.00;
$section .= '
<div class="product-card-slider">
<a href="'.url('index.php?page=product&rowID=' . ($product['url_slug'] ? ($product['url_slug'] ) : $product['rowID'])).'" id="'.$product['rowID'].'A" class="product">
<img src="'.img_url.$product['full_path'].'" alt="'.(${$product['productname']} ?? $product['productname']).'" class="product-image-slider">
<h3 class="product-name-slider">'.(${$product['productname']} ?? $product['productname']).'</h3>
<p class="product-price-slider">'.(($product_price != 0.00) ? currency_code.number_format($product_price,2) : '').'</p>
</a>
</div>';
}
$section .= '</div>
<button class="slider-nav prev-btn"><i class="fas fa-chevron-left"></i></button>
<button class="slider-nav next-btn"><i class="fas fa-chevron-right"></i></button>
</div>
</div>
</section>
<div class="divider"></div>
';
return $section ;
}
//---------------------------
//debuglog
//---------------------------
function debuglog($error){
$test = $error.PHP_EOL;
$filelocation = './log/log_'.date('m').'.txt';
error_log($test, 3, $filelocation);
}
//------------------------------------------
// Retrieve all $_GET from URL
//------------------------------------------
function urlGETdetails($input){
//GET Details from URL
if(isset($input) && !empty($input)){
$GET_VALUES = '';
foreach ($input as $KEY => $VALUE){
$GET_VALUES .= $KEY.'='.$VALUE;
$GET_VALUES .= '&';
}
return $GET_VALUES = rtrim($GET_VALUES, "&");
}
else {
return $GET_VALUES = '';
}
}
//------------------------------------------
// API TO API version 2
//------------------------------------------
function ioAPIv2($api_call, $data, $token){
$url = api_url.$api_call;
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
//SEND BEARER CODE WHEN TOKEN PROVIDED
if ($token != ''){
$headers = array(
"Authorization: Bearer $token",
"Content-Type: application/json",
);
} else {
$headers = array(
"Content-Type: application/json",
);
}
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
//IF DATA PROVIDED CONSIDER POST
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
$resp = curl_exec($curl);
$http_status = curl_getinfo($curl) ?? '200';
curl_close($curl);
//Check If errorcode is returned
if($http_status['http_code'] == '403' || $http_status['http_code'] == '400') {$resp = json_encode('NOK');}
if (debug){
$message = date('Y-m-d H:i:s').';'.$api_call;
debuglog($message);
}
//Response
return $resp;
}
?>