fellybikush's picture
Upload 99 files
628740b verified
raw
history blame
1.86 kB
<?php
class Subscription {
private $conn;
private $table_name = "subscriptions";
public $id;
public $email;
public $notification_opt_in;
public $subscribed_at;
public $unsubscribed_at;
public $is_active;
public function __construct($db) {
$this->conn = $db;
}
public function subscribe() {
$query = "INSERT INTO " . $this->table_name . "
SET email=:email, notification_opt_in=:notification_opt_in, is_active=1";
$stmt = $this->conn->prepare($query);
$this->email = htmlspecialchars(strip_tags($this->email));
$stmt->bindParam(":email", $this->email);
$stmt->bindParam(":notification_opt_in", $this->notification_opt_in);
if ($stmt->execute()) {
return true;
}
return false;
}
public function unsubscribe($email) {
$query = "UPDATE " . $this->table_name . "
SET is_active=0, unsubscribed_at=NOW()
WHERE email=:email";
$stmt = $this->conn->prepare($query);
$email = htmlspecialchars(strip_tags($email));
$stmt->bindParam(":email", $email);
if ($stmt->execute()) {
return true;
}
return false;
}
public function checkSubscription($email) {
$query = "SELECT is_active FROM " . $this->table_name . "
WHERE email = :email";
$stmt = $this->conn->prepare($query);
$email = htmlspecialchars(strip_tags($email));
$stmt->bindParam(":email", $email);
$stmt->execute();
if ($stmt->rowCount() > 0) {
$row = $stmt->fetch(PDO::FETCH_ASSOC);
return $row['is_active'];
}
return false;
}
}
?>