Add translation system (#85)
This commit is contained in:
@@ -19,7 +19,7 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Failed to add category"
|
||||
"errorMessage" => translate('failed_add_category', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
@@ -35,20 +35,21 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||
|
||||
if ($result) {
|
||||
$response = [
|
||||
"success" => true
|
||||
"success" => true,
|
||||
"message" => translate('category_saved', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Failed to edit category"
|
||||
"errorMessage" => translate('failed_edit_category', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Please fill all the fields"
|
||||
"errorMessage" => translate('fill_all_fields', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
@@ -65,7 +66,7 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||
if ($count > 0) {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Category is in use in subscriptions and can't be removed"
|
||||
"errorMessage" => translate('category_in_use', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
} else {
|
||||
@@ -75,13 +76,14 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||
$result = $stmt->execute();
|
||||
if ($result) {
|
||||
$response = [
|
||||
"success" => true
|
||||
"success" => true,
|
||||
"message" => translate('category_removed', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Failed to remove category"
|
||||
"errorMessage" => translate('failed_remove_category', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
@@ -89,15 +91,15 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Failed to remove category"
|
||||
"errorMessage" => translate('failed_remove_category', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
} else {
|
||||
echo "Error";
|
||||
echo translate('error', $i18n);
|
||||
}
|
||||
} else {
|
||||
echo "Error";
|
||||
echo translate('error', $i18n);
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -19,7 +19,7 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||
$currencyId = $db->lastInsertRowID();
|
||||
echo $currencyId;
|
||||
} else {
|
||||
echo "Error adding currency entry.";
|
||||
echo translate('error_adding_currency', $i18n);
|
||||
}
|
||||
} else if (isset($_GET['action']) && $_GET['action'] == "edit") {
|
||||
if (isset($_GET['currencyId']) && $_GET['currencyId'] != "" && isset($_GET['name']) && $_GET['name'] != "" && isset($_GET['symbol']) && $_GET['symbol'] != "") {
|
||||
@@ -36,18 +36,22 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||
$result = $stmt->execute();
|
||||
|
||||
if ($result) {
|
||||
echo json_encode(["success" => true]);
|
||||
$response = [
|
||||
"success" => true,
|
||||
"message" => $name . " " . translate('currency_saved', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"message" => "Failed to store Currency on the Database"
|
||||
"message" => translate('failed_to_store_currency', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"message" => "Some fields are missing"
|
||||
"message" => translate('fields_missing', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
@@ -70,7 +74,7 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||
if ($count > 0) {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"message" => "Currency is in use in subscriptions and can't be deleted."
|
||||
"message" => translate('currency_in_use', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
exit;
|
||||
@@ -78,7 +82,7 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||
if ($currencyId == $mainCurrencyId) {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"message" => "Currency is set as main currency and can't be deleted."
|
||||
"message" => translate('currency_is_main', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
exit;
|
||||
@@ -88,11 +92,11 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||
$stmt->bindParam(':currencyId', $currencyId, SQLITE3_INTEGER);
|
||||
$result = $stmt->execute();
|
||||
if ($result) {
|
||||
echo json_encode(["success" => true]);
|
||||
echo json_encode(["success" => true, "message" => translate('currency_removed', $i18n)]);
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"message" => "Failed to remove currency from the Database"
|
||||
"message" => translate('failed_to_remove_currency', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
@@ -101,7 +105,7 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"message" => "Some fields are missing."
|
||||
"message" => translate('fields_missing', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
@@ -111,7 +115,7 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"message" => "Your session expired. Please login again"
|
||||
"message" => translate('session_expired', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
|
||||
@@ -17,21 +17,21 @@
|
||||
$stmt->bindParam(":api_key", $newApiKey, SQLITE3_TEXT);
|
||||
$result = $stmt->execute();
|
||||
if ($result) {
|
||||
echo json_encode(["success" => true]);
|
||||
echo json_encode(["success" => true, "message" => translate('api_key_saved', $i18n)]);
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"message" => "Failed to store API Key on the Database"
|
||||
"message" => translate('failed_to_store_api_key', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
} else {
|
||||
echo json_encode(["success" => true]);
|
||||
echo json_encode(["success" => true, "message" => translate('apy_key_saved', $i18n)]);
|
||||
}
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"message" => "Invalid API Key"
|
||||
"message" => translate('invalid_api_key', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
|
||||
@@ -13,13 +13,13 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||
$householdId = $db->lastInsertRowID();
|
||||
$response = [
|
||||
"success" => true,
|
||||
"householdId" => $householdId
|
||||
"householdId" => $householdId,
|
||||
];
|
||||
echo json_encode($response);
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Failed to add household member"
|
||||
"errorMessage" => translate('failed_add_household', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
@@ -35,20 +35,21 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||
|
||||
if ($result) {
|
||||
$response = [
|
||||
"success" => true
|
||||
"success" => true,
|
||||
"message" => translate('member_saved', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Failed to edit household member"
|
||||
"errorMessage" => translate('failed_edit_household', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Please fill all the fields"
|
||||
"errorMessage" => translate('fill_all_fields', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
@@ -65,7 +66,7 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||
if ($count > 0) {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Household member is in use in subscriptions and can't be removed"
|
||||
"errorMessage" => translate('household_in_use', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
} else {
|
||||
@@ -75,13 +76,14 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||
$result = $stmt->execute();
|
||||
if ($result) {
|
||||
$response = [
|
||||
"success" => true
|
||||
"success" => true,
|
||||
"message" => translate('member_removed', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Failed to remove household member"
|
||||
"errorMessage" => translate('failed_remove_household', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
@@ -89,15 +91,15 @@ if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] === true) {
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Failed to remove household member"
|
||||
"errorMessage" => translate('failed_remove_household', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
} else {
|
||||
echo "Error";
|
||||
echo translate('error', $i18n);
|
||||
}
|
||||
} else {
|
||||
echo "Error";
|
||||
echo translate('error', $i18n);
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -15,7 +15,7 @@
|
||||
) {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Please fill all mandatory fields"
|
||||
"errorMessage" => translate('fill_mandatory_fields', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
} else {
|
||||
@@ -33,7 +33,7 @@
|
||||
if ($result === false) {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Error saving notifications data"
|
||||
"errorMessage" => translate('error_saving_notifications', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
} else {
|
||||
@@ -57,13 +57,14 @@
|
||||
|
||||
if ($stmt->execute()) {
|
||||
$response = [
|
||||
"success" => true
|
||||
"success" => true,
|
||||
"message" => translate('notifications_settings_saved', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Error saving notification data"
|
||||
"errorMessage" => translate('error_saving_notifications', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ if ($_SERVER["REQUEST_METHOD"] === "POST") {
|
||||
) {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Please fill all fields"
|
||||
"errorMessage" => translate('fill_all_fields', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
} else {
|
||||
@@ -34,6 +34,7 @@ if ($_SERVER["REQUEST_METHOD"] === "POST") {
|
||||
$fromEmail = $data["fromemail"] ?? "wallos@wallosapp.com";
|
||||
|
||||
$mail = new PHPMailer(true);
|
||||
$mail->CharSet="UTF-8";
|
||||
$mail->isSMTP();
|
||||
|
||||
$mail->Host = $smtpAddress;
|
||||
@@ -51,18 +52,19 @@ if ($_SERVER["REQUEST_METHOD"] === "POST") {
|
||||
$mail->setFrom($fromEmail, 'Wallos App');
|
||||
$mail->addAddress($email, $name);
|
||||
|
||||
$mail->Subject = 'Wallos Notification';
|
||||
$mail->Body = 'This is a test notification. If you\'re seeing this, the configuration is correct.';
|
||||
$mail->Subject = translate('wallos_notification', $i18n);
|
||||
$mail->Body = translate('test_notification', $i18n);
|
||||
|
||||
if ($mail->send()) {
|
||||
$response = [
|
||||
"success" => true,
|
||||
"message" => translate('notification_sent_successfuly', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Error sending email." . $mail->ErrorInfo
|
||||
"errorMessage" => translate('email_error', $i18n) . $mail->ErrorInfo
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
|
||||
@@ -4,14 +4,14 @@ session_start();
|
||||
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
|
||||
die(json_encode([
|
||||
"success" => false,
|
||||
"message" => "Your session expired. Please login again"
|
||||
"message" => translate('session_expired', $i18n)
|
||||
]));
|
||||
}
|
||||
|
||||
if (!isset($_GET['paymentId']) || !isset($_GET['enabled'])) {
|
||||
die(json_encode([
|
||||
"success" => false,
|
||||
"message" => "Some fields are missing."
|
||||
"message" => translate('fields_missing', $i18n)
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ $inUse = $db->querySingle('SELECT COUNT(*) as count FROM subscriptions WHERE pay
|
||||
if ($inUse) {
|
||||
die(json_encode([
|
||||
"success" => false,
|
||||
"message" => "Can't delete used payment method"
|
||||
"message" => translate('payment_in_use', $i18n)
|
||||
]));
|
||||
}
|
||||
|
||||
@@ -33,13 +33,16 @@ $stmtUpdate->bindParam(':enabled', $enabled);
|
||||
$stmtUpdate->bindParam(':id', $paymentId);
|
||||
$resultUpdate = $stmtUpdate->execute();
|
||||
|
||||
$text = $enabled ? "enabled" : "disabled";
|
||||
|
||||
if ($resultUpdate) {
|
||||
die(json_encode([
|
||||
"success" => true
|
||||
"success" => true,
|
||||
"message" => translate($text, $i18n)
|
||||
]));
|
||||
}
|
||||
|
||||
die(json_encode([
|
||||
"success" => false,
|
||||
"message" => "Failed to update payment method in the database"
|
||||
"message" => tranlate('failed_update_payment', $i18n)
|
||||
]));
|
||||
|
||||
@@ -25,13 +25,13 @@
|
||||
if (saveLogo($imageData, $uploadFile, $name)) {
|
||||
return $fileName;
|
||||
} else {
|
||||
echo "Error fetching image: " . curl_error($ch);
|
||||
echo translate('error_fetching_image', $i18n) . ": " . curl_error($ch);
|
||||
return "";
|
||||
}
|
||||
|
||||
curl_close($ch);
|
||||
} else {
|
||||
echo "Error fetching image: " . curl_error($ch);
|
||||
echo translate('error_fetching_image', $i18n) . ": " . curl_error($ch);
|
||||
return "";
|
||||
}
|
||||
}
|
||||
@@ -194,13 +194,13 @@
|
||||
if ($stmt->execute()) {
|
||||
$success['status'] = "Success";
|
||||
$text = $isEdit ? "updated" : "added";
|
||||
$success['message'] = "Subscription " . $text . " successfuly";
|
||||
$success['message'] = translate('subscription_' . $text . '_successfuly', $i18n);
|
||||
$json = json_encode($success);
|
||||
header('Content-Type: application/json');
|
||||
echo $json;
|
||||
exit();
|
||||
} else {
|
||||
echo "Error: " . $db->lastErrorMsg();
|
||||
echo translate('error', $i18n) . ": " . $db->lastErrorMsg();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
http_response_code(204);
|
||||
} else {
|
||||
http_response_code(500);
|
||||
echo json_encode(array("message" => "Error deleting the subscription."));
|
||||
echo json_encode(array("message" => translate('error_deleting_subscription', $i18n)));
|
||||
}
|
||||
} else {
|
||||
http_response_code(405);
|
||||
echo json_encode(array("message" => "Invalid request method."));
|
||||
echo json_encode(array("message" => translate('invalid_request_method', $i18n)));
|
||||
}
|
||||
}
|
||||
$db->close();
|
||||
|
||||
@@ -31,10 +31,10 @@
|
||||
header('Content-Type: application/json');
|
||||
echo $subscriptionJson;
|
||||
} else {
|
||||
echo "Error";
|
||||
echo translate('error', $i18n);
|
||||
}
|
||||
} else {
|
||||
echo "Error";
|
||||
echo translate('error', $i18n);
|
||||
}
|
||||
}
|
||||
$db->close();
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
$print[$id]['name']= $subscription['name'];
|
||||
$cycle = $subscription['cycle'];
|
||||
$frequency = $subscription['frequency'];
|
||||
$print[$id]['billing_cycle'] = getBillingCycle($cycle, $frequency);
|
||||
$print[$id]['billing_cycle'] = getBillingCycle($cycle, $frequency, $i18n);
|
||||
$paymentMethodId = $subscription['payment_method_id'];
|
||||
$print[$id]['currency_code'] = $currencies[$subscription['currency_id']]['code'];
|
||||
$currencyId = $subscription['currency_id'];
|
||||
@@ -66,19 +66,19 @@
|
||||
}
|
||||
|
||||
if (isset($print)) {
|
||||
printSubscriptions($print, $sort, $categories, $members);
|
||||
printSubscriptions($print, $sort, $categories, $members, $i18n);
|
||||
}
|
||||
|
||||
if (count($subscriptions) == 0) {
|
||||
?>
|
||||
<div class="empty-page">
|
||||
<img src="images/siteimages/empty.png" alt="Empty page" />
|
||||
<img src="images/siteimages/empty.png" alt="<?= translate('empty_page', $i18n) ?>" />
|
||||
<p>
|
||||
You don't have any subscriptions yet
|
||||
<?= translate('no_subscriptions_yet', $i18n) ?>
|
||||
</p>
|
||||
<button class="button" onClick="addSubscription()">
|
||||
<img class="button-icon" src="images/siteicons/plusicon.png">
|
||||
Add First Subscription
|
||||
<?= translate('add_first_subscription', $i18n) ?>
|
||||
</button>
|
||||
</div>
|
||||
<?php
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
$email = $_POST['email'];
|
||||
$avatar = $_POST['avatar'];
|
||||
$main_currency = $_POST['main_currency'];
|
||||
$language = $_POST['language'];
|
||||
|
||||
if (isset($_POST['password']) && $_POST['password'] != "") {
|
||||
$password = $_POST['password'];
|
||||
@@ -84,7 +85,7 @@
|
||||
if ($password != $confirm) {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Passwords do not match"
|
||||
"errorMessage" => translate('passwords_dont_match', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
exit();
|
||||
@@ -92,7 +93,7 @@
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Passwords do not match"
|
||||
"errorMessage" => translate('passwords_dont_match', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
exit();
|
||||
@@ -100,9 +101,9 @@
|
||||
}
|
||||
|
||||
if (isset($_POST['password']) && $_POST['password'] != "") {
|
||||
$sql = "UPDATE user SET avatar = :avatar, username = :username, email = :email, password = :password, main_currency = :main_currency WHERE id = 1";
|
||||
$sql = "UPDATE user SET avatar = :avatar, username = :username, email = :email, password = :password, main_currency = :main_currency, language = :language WHERE id = 1";
|
||||
} else {
|
||||
$sql = "UPDATE user SET avatar = :avatar, username = :username, email = :email, main_currency = :main_currency WHERE id = 1";
|
||||
$sql = "UPDATE user SET avatar = :avatar, username = :username, email = :email, main_currency = :main_currency, language = :language WHERE id = 1";
|
||||
}
|
||||
|
||||
$stmt = $db->prepare($sql);
|
||||
@@ -110,6 +111,7 @@
|
||||
$stmt->bindParam(':username', $username, SQLITE3_TEXT);
|
||||
$stmt->bindParam(':email', $email, SQLITE3_TEXT);
|
||||
$stmt->bindParam(':main_currency', $main_currency, SQLITE3_INTEGER);
|
||||
$stmt->bindParam(':language', $language, SQLITE3_TEXT);
|
||||
|
||||
if (isset($_POST['password']) && $_POST['password'] != "") {
|
||||
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
|
||||
@@ -119,12 +121,13 @@
|
||||
$result = $stmt->execute();
|
||||
|
||||
if ($result) {
|
||||
$cookieExpire = time() + (30 * 24 * 60 * 60);
|
||||
setcookie('language', $language, $cookieExpire, '/');
|
||||
if ($username != $oldUsername) {
|
||||
$_SESSION['username'] = $username;
|
||||
if (isset($_COOKIE['wallos_login'])) {
|
||||
$cookie = explode('|', $_COOKIE['wallos_login'], 2) ;
|
||||
$token = $cookie[1];
|
||||
$cookieExpire = time() + (30 * 24 * 60 * 60);
|
||||
$cookieValue = $username . "|" . $token . "|" . $main_currency;
|
||||
}
|
||||
}
|
||||
@@ -137,12 +140,13 @@
|
||||
|
||||
$response = [
|
||||
"success" => true,
|
||||
"message" => translate('user_details_saved', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Error updating user data"
|
||||
"errorMessage" => translate('error_updating_user_data', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
}
|
||||
@@ -151,7 +155,7 @@
|
||||
} else {
|
||||
$response = [
|
||||
"success" => false,
|
||||
"errorMessage" => "Please fill all fields"
|
||||
"errorMessage" => translate('fill_all_fields', $i18n)
|
||||
];
|
||||
echo json_encode($response);
|
||||
exit();
|
||||
|
||||
Reference in New Issue
Block a user