我正在一个Web应用程序上工作,在该Web应用程序中已为我分配了用户订阅任务,并检查订阅是否已过期。我正在做的是PHP。我只需要有关如何执行此操作的基本想法。请帮助
答案 0 :(得分:1)
这是一种简单的方法。我将分享我工作过的代码段。您可以这样尝试。在数据库中设置一个有效的字段。因此,当用户购买订阅时,请将有效最新日期的值存储在此字段中。这是一个示例代码片段。
public function vendorcheckout($data)
{
$stmt = $this->con->prepare("INSERT INTO x3mdu_vendor_subscription(sub_id,vendor_id,sub_title,sub_amount,sub_duration,vendor_name,vendor_email,vendor_phone,vendor_address1,vendor_address2,vendor_city,vendor_state,payment_id,valid_upto,created) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,now())");
$stmt->bind_param("iisisssissiiss", $data['sub_id'],$data['vendor_id'],$data['sub_title'],$data['sub_amount'],$data['sub_duration'],$data['vendor_name'],$data['vendor_email'],$data['vendor_phone'],$data['vendor_address1'],$data['vendor_address2'],$data['vendor_city'],$data['vendor_state'],$data['payment_id'],$data['valid_upto']);
$result = $stmt->execute();
$stmt->store_result();
$num_rows = $stmt->num_rows;
$stmt->close();
$last_id = $this->con->insert_id;
if($result){
return $last_id;
}
return false;
}
要检查订阅是否仍处于活动状态,可以通过这种方式进行。
private function isSubscribed($vendor_id) {
$stmt = $this->con->prepare("SELECT vs_id from x3mdu_vendor_subscription WHERE vendor_id = ? AND DATEDIFF(CURDATE(),valid_upto) < 0");
$stmt->bind_param("i",$vendor_id);
$stmt->execute();
$stmt->store_result();
$num_rows = $stmt->num_rows;
$stmt->close();
return $num_rows > 0;
}
DATEDIFF(CURDATE(),valid_upto)
将返回负值,直到有效日期到期。当差异大于0
时
这表示您的订阅已过期。希望对您有帮助