Php OpenCart订阅模式(x个月)
我正在使用OpenCart建立一个电子商务网站,我想提供订阅服务。特别是3/6/12个月的订阅。我对重复计费不感兴趣(我知道有贝宝和授权.net模块)。我希望用户提前支付一次。从配置的角度看,这是否转化为3个伪产品?我想这是可行的,到目前为止,只是产品配置。3种产品,每个都有一个价格 棘手的部分来了。用户每月支付一次费用,在他们的“计费周期”内,他们每月只能订购一次产品。因此,如果用户在5月23日支付3个月的订阅费:Php OpenCart订阅模式(x个月),php,opencart,subscription,Php,Opencart,Subscription,我正在使用OpenCart建立一个电子商务网站,我想提供订阅服务。特别是3/6/12个月的订阅。我对重复计费不感兴趣(我知道有贝宝和授权.net模块)。我希望用户提前支付一次。从配置的角度看,这是否转化为3个伪产品?我想这是可行的,到目前为止,只是产品配置。3种产品,每个都有一个价格 棘手的部分来了。用户每月支付一次费用,在他们的“计费周期”内,他们每月只能订购一次产品。因此,如果用户在5月23日支付3个月的订阅费: 他可以在23/5-22/6期间获得一种产品 23/6-22/7中有一个,以及
- 他可以在23/5-22/6期间获得一种产品
- 23/6-22/7中有一个,以及
- 每23/7-22/8就有一个
- 我想再添加一个实体(对象/模型)来存储 订阅、它所属的用户、开始和结束日期以及 是否已被利用。基本上,订阅是正常的 订单,我希望它像一个一样存储,我只需要 再坚持几个领域。正如我所说,我需要进行两项检查:
- 用户是否使用了当月的订阅?对于 这是我在考虑有一个标志“isUsed”字段,它可以 使用cron作业重置,每次用户达到其计费日期时。(在 我们的示例23/6、23/7)。或者,我可以添加3个条目,一个用于 每个计费周期,并相应地更新它们
- 订阅过期了吗?我可以核对一下有效期 订阅的一部分
Iraklis这个功能远远超出了Opencart的功能范围,但是如果您对PHP/CodeIgniter有一定的了解,那么您应该能够完成大部分/所有的MOD。了解SQL也很好,但如果您还不了解,那么学习SQL也很快 我想说你的MOD有两个部分,每个部分都有自己的难度 我正在使用OpenCart建立一个电子商务网站,我想提供 订阅。特别是3/6/12个月的订阅。我不是 对重复计费感兴趣(我知道有一些模块 PayPal和Authorize.net)。我希望用户提前支付一次。做 这将从配置点转换为3个伪产品 看法我想这是可行的,到目前为止,只是产品 配置3种产品,每个都有一个价格 棘手的部分来了。每个月用户都会支付他们的费用 有权在其权限内每月仅订购一次产品 “计费周期”。因此,如果用户在 23/5: 我想我应该做的是为每个订阅长度添加一个产品,每个产品向他们发放适当的帐户信用,并使该信用达到每月购买一个订阅长度产品的完美金额 为此,我建议添加一个函数,将资金添加到文件catalog>model>checkout>order.php(或您选择的任何模型)中数据库的customer\u交易字段中,然后调用该函数并在catalog>controller>checkout>success.php中添加数据 我认为,核实客户是否购买了适当的订阅产品,并核实该购买是否已经有信用额度是明智的 为了确保他们每月只获得1个产品,您需要在catalog>controller>checkout>checkout.php的开头编写一个脚本,以便在他们尝试获取产品太频繁时将其重定向到错误消息 用户每月不得订购超过一种产品, 他也不应该在22/8之后得到任何产品,除非 他续约。而且,如果我可以的话,那就太棒了 拥有cron作业,检查用户是否已将其订阅用于 当前月份,并发送“嘿,获取本月的产品” 一种提醒邮件 我甚至不知道从哪里开始,但如果你愿意付费,你可以发布帮助,并可能以很好的价格添加此功能 这是我的第一个OpenCart项目,我已经完成了 文档和谷歌搜索了很多,我和一个本地人玩过 安装,我想知道我问的是 在不修改核心代码的情况下是可行的,我希望避免这种情况。 然而,如果没有其他方法,我知道OpenCart是一个 MVC(+L(语言))框架,但我还没有找到任何实体 有关如何自定义其功能的文档,仅限bit ans 具体要求的零件 A
he can get one product in the period 23/5-22/6,
one in 23/6-22/7, and
one in 23/7-22/8
I would like to add one more entity (object/model) for storing the subscription, the user to which it belongs, start and end date and
public function addTransaction($customer_id, $description = '', $amount = '', $order_id = 0) {
$customer_info = $this->getCustomer($customer_id);
if ($customer_info) {
$this->db->query("INSERT INTO " . DB_PREFIX . "customer_transaction
SET customer_id = '" . (int)$customer_id . "',
order_id = '" . (int)$order_id . "',
description = '" . $this->db->escape($description) . "',
amount = '" . (float)$amount . "',
date_added = NOW()");
}
$this->load->model('sale/customer');
if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->user->hasPermission('modify', 'sale/customer')) {
$this->model_sale_customer->addTransaction($this->request->get['customer_id'],
$this->request->post['description'], $this->request->post['amount']);
$this->data['success'] = $this->language->get('text_success');
} else {
$this->data['success'] = '';
}