检查订阅是否已过期

6jygbczu  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(321)

我正在开发一个webapp,其中分配了一个用户订阅任务,并检查订阅是否过期。我做这个是php。我只想知道怎么做。请帮忙

xpcnnkqh

xpcnnkqh1#

这里有一个简单的方法。我将与大家分享我的一段代码片段。您可以这样尝试。在数据库中设置一个有效的\upto字段。因此,当用户购买订阅时,将valid update的值存储到该字段中。下面是一个示例代码段。

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 这意味着您的订阅已过期。希望有帮助

相关问题