// add this before event code to all pages where PII data postback is expected and appropriate
ttq.identify({
"email": "", // string. The email of the customer if available. It must be hashed with SHA-256 on the client side.
"phone_number": "", // string. The phone number of the customer if available. It must be hashed with SHA-256 on the client side.
"external_id": "" // string. Any unique identifier, such as loyalty membership IDs, user IDs, and external cookie IDs.It must be hashed with SHA-256 on the client side.
});
ttq.track('ViewContent', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "", // string. The name of the page or product. Example: "shirt".
"content_category": "", // string. The category of the page or product. Example: "apparel".
"quantity": "", // number. The number of items. Example: 4.
"price": "" // number. The price of a single item. Example: 25.
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "", // string. The 4217 currency code. Example: "USD".
"query": "", // string. The word or phrase used to search. Example: "SAVE10COUPON".
"description": "", // string. Non-hashed public IP address of the browser.
"status": "" // string. The status of an order, item, or service. Example: "submitted".
});
ttq.track('AddPaymentInfo', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('InitiateCheckout', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('AddToCart', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('Download', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('PlaceAnOrder', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('SubmitForm', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('ClickButton', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('AddToWishlist', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('CompletePayment', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('Subscribe', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('Contact', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('Search', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "", // string. The 4217 currency code. Example: "USD".
"query": "" // string. The word or phrase used to search. Example: "SAVE10COUPON".
});
ttq.track('CompleteRegistration', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
// add this before event code to all pages where PII data postback is expected and appropriate
ttq.identify({
"email": "", // string. The email of the customer if available. It must be hashed with SHA-256 on the client side.
"phone_number": "", // string. The phone number of the customer if available. It must be hashed with SHA-256 on the client side.
"external_id": "" // string. Any unique identifier, such as loyalty membership IDs, user IDs, and external cookie IDs.It must be hashed with SHA-256 on the client side.
});
ttq.track('ViewContent', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('AddToWishlist', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('Search', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "", // string. The 4217 currency code. Example: "USD".
"query": "" // string. The word or phrase used to search. Example: "SAVE10COUPON".
});
ttq.track('AddPaymentInfo', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('AddToCart', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('InitiateCheckout', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('PlaceAnOrder', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('CompleteRegistration', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
});
ttq.track('CompletePayment', {
"contents": [
{
"content_id": "", // string. ID of the product. Example: "1077218".
"content_type": "", // string. Either product or product_group.
"content_name": "" // string. The name of the page or product. Example: "shirt".
}
],
"value": "", // number. Value of the order or items sold. Example: 100.
"currency": "" // string. The 4217 currency code. Example: "USD".
false,'error'=>$msg], JSON_UNESCAPED_UNICODE);
exit;
}
if ($_SERVER['REQUEST_METHOD'] !== 'POST') fail('method_not_allowed', 405);
$name = trim($_POST['name'] ?? '');
$phone = trim($_POST['phone'] ?? '');
$email = trim($_POST['email'] ?? '');
$subject = trim($_POST['subject'] ?? '');
$message = trim($_POST['message'] ?? '');
$branch = trim($_POST['branch'] ?? '');
if ($name==='' || $phone==='' || $subject==='' || $message==='' || $branch==='') fail('missing_fields');
if ($email !== '' && !filter_var($email, FILTER_VALIDATE_EMAIL)) fail('invalid_email');
// منع حقن الهيدر
foreach ([$name,$phone,$subject,$branch] as $v){
if (preg_match("/(\r|\n)/", $v)) fail('bad_input');
}
$to = "care@rozalsteel.com";
$mailSubject = "رسالة جديدة - {$subject}";
$body =
"وصلت رسالة جديدة من نموذج تواصل معنا:\n\n"
."الاسم: {$name}\n"
."الهاتف: {$phone}\n"
."البريد: ".($email!==''?$email:'—')."\n"
."الفرع/المدينة: {$branch}\n"
."الموضوع: {$subject}\n\n"
."الرسالة:\n{$message}\n\n"
."IP: ".($_SERVER['REMOTE_ADDR'] ?? '')."\n";
$headers = [];
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-Type: text/plain; charset=UTF-8";
$headers[] = "From: Rozal Steel ";
if ($email !== '') $headers[] = "Reply-To: {$email}";
$headersStr = implode("\r\n", $headers);
$sent = @mail($to, "=?UTF-8?B?".base64_encode($mailSubject)."?=", $body, $headersStr);
if (!$sent) fail('mail_failed', 500);
echo json_encode(['ok'=>true], JSON_UNESCAPED_UNICODE);
});