WebSite X5Help Center

 
Luca E.
Luca E.
User

Coupon e cookie  it

Autor: Luca E.
Visited 1224, Followers 1, Udostępniony 0  

Buongiorno, è possibile rendere attivo un codice coupon solo se è presente un determinato cookie?

O magari rendere visibile il campo coupon nel carrello alla stessa condizione del cookie?

Ho provato con Jquery ma non ho avuto risultati.

Posted on the
8 ODPOWIEDZI - 2 USEFUL
 lemonsong  
 lemonsong  
User

Questo cookie chi lo scrive? WS? Uno script terzo?

Comunque (quasi) tutto è possibile, se posti un esempio faciliti chi ti vuole/può aiutare.

Se non sei proprio a "digiuno di codici", puoi anche sfruttare la gestione dei cookie di WS, scrivendo una roba del genere:

if ($.imCookie("nomedelcookie")) {
  //codice che soddisfa la condizione
}

Ovviamente questa è solo la condizione.

Un link utile: https://www.w3schools.com/js/js_cookies.asp

Czytaj więcej
Posted on the from  lemonsong  
Luca E.
Luca E.
User
Autor

Ciao lemonsong, alla fine ci sono riuscito con del codice PHP a parte. Ho dato un' occhiata ai tuoi tutorial, interessanti laughing

Se vuoi ti passo questo così potresti implementarlo

Czytaj więcej
Posted on the from Luca E.
 lemonsong  
 lemonsong  
User

Bene, potresti postare qui quello che hai fatto per chiunque abbia la tua stessa necessità.

Hai "ravanato" tra la polvere del magazzino? OK, ma adesso lavati accuratamente le mani (covid19) innocent

Czytaj więcej
Posted on the from  lemonsong  
Luca E.
Luca E.
User
Autor

OK. Io ho impostato gli script in modo da poter offrire un coupon di benvenuto generico, con lo sconto del 20% sul totale dell'ordine che scade il 30/09/2020, solo sul primo acquisto.

Innanzitutto prima dell'apertura del tag HTML aggiungere:

<?php

$qblog = $_SERVER['PHP_SELF'];
if (strpos($qblog, '/blog/') !== false || strpos($qblog, '/cart/') !== false)
$qpath = '../';
else
$qpath = '';
include ($qpath . "res/functions.php");

if($username) {
$checkcp = encode($username);
setcookie('checkCP', $checkcp, time() + (3600), "/");
}
$file = $qpath . "res/x5engine.php";
$url = "
@include_once \"x5coupon.php\" ;";
$text = file_get_contents($file);
if(strpos($text, $url) === false) {
file_put_contents($file, $url, FILE_APPEND);
}

?>

creare i file 'x5coupon.php' e 'functions.php' ed inserirli nella cartella /res/ direttamente sul server 

<?php

//questo è il file x5coupon.php

$check_coupons = $_COOKIE['extraCP'];
$couponData = array();
$couponData['cart'] = array(
'WELCOME' => array('type' => 'relative', 'amount' => 0.2, 'apply_on_shipping_and_payment' => FALSE, 'end_time' => 1601427643)
);
$couponData['products'] = array();
if ($_COOKIE['checkCP']) {
if ($check_coupons != '1') {
$ecommerce->setCouponData($couponData);
}
}

<?php

//questo è il file function.php


$conn = new mysqli(
"localhost",
"userDB",
"passwordDB",
"yourDB"
);
mysqli_connect_errno();

$ck_checkCP = decode($_COOKIE['checkCP']);


function encode($value) {
if (!$value) {
return false;
}
$key = sha1('xxxxxxxxxxEnCRypT10nK#Y!oiSRNn');
$strLen = strlen($value);
$keyLen = strlen($key);
$j = 0; $crypttext = '';
for ($i = 0; $i < $strLen; $i++) {
$ordStr = ord(substr($value, $i, 1));
if ($j == $keyLen) { $j = 0;
}
$ordKey = ord(substr($key, $j, 1)); $j++;
$crypttext .= strrev(base_convert(dechex($ordStr + $ordKey), 16, 36));
} return $crypttext;
}
function decode($value) {
if (!$value) {
return false;
}
$key = sha1('xxxxxxxxxxEnCRypT10nK#Y!oiSRNn');
$strLen = strlen($value);
$keyLen = strlen($key);
$j = 0; $decrypttext = '';
for ($i = 0; $i < $strLen; $i += 2) {
$ordStr = hexdec(base_convert(strrev(substr($value, $i, 2)), 36, 16));
if ($j == $keyLen) {
$j = 0;
} $ordKey = ord(substr($key, $j, 1));
$j++;
$decrypttext .= chr($ordStr - $ordKey);
}
return $decrypttext;
}
function check_extracoupon() {
global $conn;
global $ck_checkCP;
$ret = "1";
$sql = "SELECT o.id, a.value, o.ts, o.price_plus_vat, o.currency, o.shipping_name, o.coupon, o.coupon_value, o.status
FROM "*t_orders*" AS o
JOIN "*t_invoice_addresses*" AS a ON o.id = a.order_id
WHERE o.coupon = 'WELCOME'
AND a.field_id = 'Email'
AND a.value = '$ck_checkCP'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$ret = "1";
} else {
$ret = "0";
}
setcookie('extraCP', $ret, time() + (3600), "/");

return true;
}


?>

N.B.: nel file functions.php sostituire "*t_orders*" con la vostra tabella orders e "*t_invoice_addresses*" con la vostra tabella invoice_addresses

Spero di non aver commesso errori nel modificare i file, in quanto il mio progetto originale é un pò più complesso.

Se lo testate datemi l'esito per favore :D

Czytaj więcej
Posted on the from Luca E.
Luca E.
Luca E.
User
Autor

ho dimenticato di inserire il richiamo alla funzione check_extracoupon();

quindi prima dell'apertura del tag HTML aggiungere anche:

check_extracoupon();

Czytaj więcej
Posted on the from Luca E.
 lemonsong  
 lemonsong  
User
Luca E.
OK. Io ho impostato gli script in modo da poter offrire un coupon di benvenuto generico, con lo sconto del 20% sul totale dell'ordine che scade il 30/09/2020, solo sul primo acquisto.

Dal tuo primo post avevo capito altro. Hai fatto un lavorone.

Czytaj więcej
Posted on the from  lemonsong  
Luca E.
Luca E.
User
Autor

Grazie lemon.

Lo hai testato?

Czytaj więcej
Posted on the from Luca E.
 lemonsong  
 lemonsong  
User

Ho la demo della 2020, non so se mi permetterà di farlo.

Se ci proverò mi farò sicuramente vivo.

Czytaj więcej
Posted on the from  lemonsong