业务经理

微信扫描以上二维码

028-61286886

技术咨询

怎么判断用户已经购买商品

迅睿框架 更新 2021-01-18 16:37:24 575672988

PHP程序里面

大佬们帮忙看看怎么判断用户已经购买商品???

代码是参考积分购物这个插件,把buy.php直接挪到内容模块下面。

然后在内容模块新建price作为支付字段,复制了一份积分购物的购买记录表重命名作为记录商品购买的记录表

现在想要在内容模块的内容页面获取用户是否支付然后返回不同的内容,大佬帮忙看看该如何写下判断?

{if ?????????????????????????????}
购买展示的内容
{else}
<a href="{dr_url(MOD_DIR.'/buy/index')}&id={$id}">请购买后再查看</a>
{/if}


数据表

{xunruicms_img_title}

buy.php代码

<?php namespace Phpcmf\Controllers;

class Buy extends \Phpcmf\Common {


    public function index() {

        $this->_module_init(APP_DIR);

        $id = (int)\Phpcmf\Service::L('Input')->get('id');
        (!$id) && exit($this->_msg(0, dr_lang('商品ID不能为空')));

        !$this->uid && exit($this->_msg(0, '你还没有登录'));

        $data = $this->content_model->get_row( $id);
        !$data && $this->_msg(0, dr_lang('内容【id#%s】不存在',  $id));
        !isset($data['price']) && $this->_msg(0, dr_lang('此模块没有找到price字段'));

        $data['price_sku'] = dr_string2array($data['price_sku']);
        if ($data['price_sku']) {
            $price = [];
            foreach ($data['price_sku'] as $gid => $v) {
                if (in_array($gid, $this->member['groupid'])) {
                    $price[] = $v;
                }
            }
            !$price && $this->_msg(0, dr_lang('当前用户组无权限购买'));
            $score = intval(min($price));
        } else {
            $score = intval($data['price']);
        }

        if ($score > 0) {
            // 扣积分
            if ((float)$this->member['score'] <= 0 ) {
                $this->_msg(0, dr_lang('账户余额不足'));
            } elseif ($this->member['score'] - $score < 0) {
                $this->_msg(0, dr_lang('账户可用余额不足'));
            }

            // 扣款
            \Phpcmf\Service::M('member')->add_score($this->uid, -$score, '积分购物消费<'.$data['title'].'>');

            // 打款到作者
            \Phpcmf\Service::M('member')->add_score($data['uid'], $score, '积分购物收入<'.$data['title'].'>');

            // 记录到日志表
            \Phpcmf\Service::M()->table(SITE_ID.'_'.APP_DIR.'_score')->insert([
                'cid' => $id,
                'uid' => $this->uid,
                'sellid' => $data['uid'],
                'price' => $score,
                'inputtime' => SYS_TIME,
            ]);

            $this->_msg(1, dr_lang('支付成功'), dr_url_prefix($data['url'], APP_DIR, SITE_ID));

        } else {

            $this->_msg(0, dr_lang('当前商品为免费商品,不需要购买'));
        }



    }
    
}




方案

  • 疾风 #1 · 2021-01-18 16:32:05
    满意答案
    你的代码是入库了一张表,判断这张表是否有记录就可以实现吧?、
    {if $member.uid && \Phpcmf\Service::M()->table(SITE_ID.'_'.APP_DIR.'_score')->where('uid', $member.uid)->where('cid', $id)->counts()}
    试试这个代码
  • 575672988 #2 · 2021-01-18 16:37:09
    疾风 非常好的代码 你真的是太帅了!
  • 575672988 #3 · 2021-01-18 16:37:24
    @疾风:非常感谢!!!!!!!

迅睿系统漏洞

外贸多语言建站
外贸多语言建站(2026-10-30)
修正对百度编辑器提取支持
AI文章生成器
AI文章生成器(2026-10-29)
任务插图设置数量
Bing站长数据
Bing站长数据(2026-10-29)
根据BING接口调整菜单 各个页面数据支持点击查看详情
按字段付费
按字段付费(2026-10-29)
按字段付费用于模块的字段设置一定的价格,当用户购买了此内容的字段时才...
泛解析站群系统
泛解析站群系统(2026-10-29)
AI队列增加清空按钮 表单提示语收敛 目录模式不接管主域名模板
邮件群发
邮件群发(2026-10-28)
修改模板的命名
自定义收款/捐款
自定义收款/捐款(2026-10-28)
自定义收款或捐款插件可以让用户快速创建付款或者捐款功能
CMS内容批量修改
CMS内容批量修改(2026-10-28)
后台批量修改文章内容的指定字段在插件后台可以任意指定字段
全站模块搜索
全站模块搜索(2026-10-28)
实现全模块一次性搜索内容,一键搜索全站内容精准搜索全部模块:
PHPCMSV9数据转换
PHPCMSV9数据转换(2026-10-28)
PHPCMS转入迅睿CMS操作步骤:https://www.xunr...