226 lines
6.6 KiB
PHP
226 lines
6.6 KiB
PHP
<?php
|
|
|
|
require_once(__DIR__ . '/wp/wp-load.php');
|
|
|
|
use LDC\LDCCRM\CrmApiV4;
|
|
use LDC\LDCCRM\Enums\ApiError;
|
|
use LDC\LDCCRM\Exceptions\ApiErrorException;
|
|
use LDC\LDCCRM\Exceptions\CrmException;
|
|
use LDC\LDCCRM\Models\Customer;
|
|
|
|
$callOK = false;
|
|
$modelNotFound = false;
|
|
$styleSheetUrl = get_stylesheet_directory_uri();
|
|
|
|
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
|
if (isset($_GET['hashcode']) and !empty($_GET['hashcode'])) {
|
|
// * Initialise CRM API
|
|
new CrmApiV4(CRM_ENDPOINT, CRM_TOKEN, CRM_PASSWORD);
|
|
|
|
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
|
|
$hashcode = filter_var($_GET['hashcode'], FILTER_SANITIZE_STRING);
|
|
|
|
// Seul customer est géré pas single optin (pas d'envoi de news à ceux-ci)
|
|
try {
|
|
// ? Le customer exists ? Il est optin ?
|
|
if (($customer = Customer::find($hashcode)) and $customer->opt_in) {
|
|
// * Il met son optin à false
|
|
$customer->toggleOptin();
|
|
$callOK = true;
|
|
} else {
|
|
$modelNotFound = true;
|
|
}
|
|
} catch (CrmException | ApiErrorException $e) {
|
|
if (get_class($e) === ApiErrorException::class and $e->getApiError()->equals(ApiError::modelNotFound)) {
|
|
$modelNotFound = true;
|
|
} else {
|
|
// phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log,Squiz.PHP.DiscouragedFunctions.Found
|
|
error_log(sprintf(
|
|
'ERROR CRM API : %s - %s | hashcode : %s',
|
|
(get_class($e) === CrmException::class ? $e->getMessage() : $e->getApiError()->label()),
|
|
$e->getMessage(),
|
|
$hashcode
|
|
));
|
|
}
|
|
}
|
|
}
|
|
|
|
?>
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="fr">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Désinscription à la newsletter Réghalal</title>
|
|
<style>
|
|
@font-face {
|
|
font-family: 'Barlow';
|
|
src: url('<?= $styleSheetUrl; ?>/fonts/Barlow-Regular.eot');
|
|
src: url('<?= $styleSheetUrl; ?>/fonts/Barlow-Regular.eot?#iefix') format('embedded-opentype'),
|
|
url('<?= $styleSheetUrl; ?>/fonts/Barlow-Regular.woff2') format('woff2'),
|
|
url('<?= $styleSheetUrl; ?>/fonts/Barlow-Regular.woff') format('woff'),
|
|
url('<?= $styleSheetUrl; ?>/fonts/Barlow-Regular.ttf') format('truetype'),
|
|
url('<?= $styleSheetUrl; ?>/fonts/Barlow-Regular.svg#Barlow-Regular') format('svg');
|
|
font-weight: normal;
|
|
font-style: normal;
|
|
font-display: swap;
|
|
}
|
|
|
|
@font-face {
|
|
font-family: 'Merienda';
|
|
src: url('<?= $styleSheetUrl; ?>/fonts/Merienda-Bold.eot');
|
|
src: url('<?= $styleSheetUrl; ?>/fonts/Merienda-Bold.eot?#iefix') format('embedded-opentype'),
|
|
url('<?= $styleSheetUrl; ?>/fonts/Merienda-Bold.woff2') format('woff2'),
|
|
url('<?= $styleSheetUrl; ?>/fonts/Merienda-Bold.woff') format('woff'),
|
|
url('<?= $styleSheetUrl; ?>/fonts/Merienda-Bold.ttf') format('truetype'),
|
|
url('<?= $styleSheetUrl; ?>/fonts/Merienda-Bold.svg#Merienda-Bold') format('svg');
|
|
font-weight: bold;
|
|
font-style: normal;
|
|
font-display: swap;
|
|
}
|
|
|
|
html,
|
|
body,
|
|
::before,
|
|
::after,
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
background: url('<?= $styleSheetUrl; ?>/img/prod-slider-background.jpg') center center no-repeat;
|
|
background-size: cover;
|
|
background-color: #f5ecde;
|
|
font-family: 'Barlow', Arial, Helvetica, sans-serif;
|
|
font-size: 30px;
|
|
font-weight: normal;
|
|
color: #000000;
|
|
}
|
|
|
|
.post-title {
|
|
font-family: 'Merienda', Arial, Helvetica, sans-serif;
|
|
font-size: 1.33em;
|
|
font-weight: 700;
|
|
color: #e30613;
|
|
}
|
|
|
|
a {
|
|
color: #000000;
|
|
transition: color .5s;
|
|
}
|
|
|
|
a:hover {
|
|
color: #e30613;
|
|
}
|
|
|
|
p {
|
|
margin: 1em 0;
|
|
font-size: .8em;
|
|
}
|
|
|
|
span {
|
|
font-size: .6em;
|
|
}
|
|
|
|
.wrapper-unsub {
|
|
display: grid;
|
|
grid-template-rows: min-content min-content auto min-content;
|
|
justify-items: center;
|
|
min-height: 100vh;
|
|
padding: 10vw 4vw;
|
|
}
|
|
|
|
.unsub--logo {
|
|
width: 60%;
|
|
text-align: center;
|
|
}
|
|
|
|
.unsub--logo img {
|
|
width: 100%;
|
|
max-width: 300px;
|
|
}
|
|
|
|
.unsub--title {
|
|
margin: 4vw 0;
|
|
text-align: center;
|
|
}
|
|
|
|
.unsub--footer {
|
|
width: 100%;
|
|
}
|
|
|
|
@media only screen and (min-width:768px) {
|
|
.post-title {
|
|
font-size: 2em;
|
|
}
|
|
|
|
p {
|
|
font-size: 1em;
|
|
}
|
|
|
|
span {
|
|
font-size: .8em;
|
|
}
|
|
|
|
.wrapper-unsub {
|
|
padding: 4vw 10vw;
|
|
}
|
|
}
|
|
|
|
@media only screen and (min-width:1024px) {
|
|
.post-title {
|
|
font-size: 2.33em;
|
|
}
|
|
|
|
p {
|
|
font-size: 1.2em;
|
|
}
|
|
|
|
span {
|
|
font-size: 1em;
|
|
}
|
|
}
|
|
|
|
@media only screen and (min-width:1440px) {}
|
|
|
|
@media only screen and (min-width:1920px) {}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="wrapper-unsub">
|
|
<div class="unsub--logo">
|
|
<img src="<?= wp_get_upload_dir()['baseurl']; ?>/2020/09/logo.png" alt="Logo de la marque Réghalal">
|
|
</div>
|
|
<div class="unsub--title">
|
|
<h1 class="post-title">Désinscription</h1>
|
|
</div>
|
|
|
|
<div class="unsub--content">
|
|
<?php
|
|
/**
|
|
* On ne communique pas sur model not found
|
|
* pour ne pas créer une page où on peut determiner
|
|
* qui est inscrit dans la crm
|
|
*/
|
|
if ($callOK or $modelNotFound) : ?>
|
|
<p>Vous êtes désinscrits de la newsletter Réghalal.</p>
|
|
<p>En espérant vous revoir bientôt !</p>
|
|
<?php else : ?>
|
|
<p>Une erreur est survenue.</p>
|
|
<p>Veuillez réessayer ultérieurement.</p>
|
|
<?php endif; ?>
|
|
</div>
|
|
|
|
<div class="unsub--footer">
|
|
<span>Retrouvez-nous sur <a href="https://www.reghalal.com">reghalal.com</a> !</span>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
|
|
</html>
|