반응형
쿠폰을 발급하는 방법은 여러가지가 있겠지만 여기서는 회원가입을 하는 경우 가입축하쿠폰을 발행하는 것을 해보려고 한다. 이것 하나만 해보면 다른 것들도 똑같이 할 수 있다.
우선 가입축하쿠폰을 하나 만들어보자. 전제품 10%할인쿠폰이고 최소 3만원이상 구매시 사용할 수 있으며 최대 5000원까지만 할인해주는 쿠폰을 만든다. 자 이제 이 쿠폰을 회원가입하는 회원들에게 등록하는 코드를 추가해보자.
예전에 게시판할때 회원가입페이지를 만든적이 있다. 그걸 다시 갖다 쓰려고 한다.
/membr/signup.php
<?php
include $_SERVER["DOCUMENT_ROOT"]."/inc/header.php";
?>
<form class="row g-3 needs-validation" method="post" action="signup_ok.php">
<div class="col-12">
<label for="validationCustom01" class="form-label">이름</label>
<input type="text" class="form-control" id="userame" name="username" placeholder="" required>
</div>
<div class="col-12">
<label for="validationCustom02" class="form-label">아이디</label>
<input type="text" class="form-control" id="userid" name="userid" placeholder="" required>
</div>
<div class="col-12">
<label for="validationCustom02" class="form-label">비밀번호</label>
<input type="password" class="form-control" id="passwd" name="passwd" placeholder="" required>
</div>
<div class="col-12">
<label for="validationCustomUsername" class="form-label">이메일</label>
<div class="input-group has-validation">
<span class="input-group-text" id="inputGroupPrepend">@</span>
<input type="email" class="form-control" id="email" name="email" placeholder="" required>
</div>
</div>
<div class="col-12">
<button class="btn btn-primary" type="submit">가입하기</button>
</div>
</form>
<?php
include $_SERVER["DOCUMENT_ROOT"]."/inc/footer.php";
?>
이렇게 생긴 아주 간단한 가입폼이다. 가입을 하면 쿠폰을 주는 코드를 추가해보자.
/member/signup_ok.php
<?php
include $_SERVER["DOCUMENT_ROOT"]."/inc/dbcon.php";
$userid=$_POST["userid"];
$username=$_POST["username"];
$email=$_POST["email"];
$passwd=$_POST["passwd"];
$passwd=hash('sha512',$passwd);
$sql="INSERT INTO members
(userid, email, username, passwd)
VALUES('".$userid."', '".$email."', '".$username."', '".$passwd."')";
$result=$mysqli->query($sql) or die($mysqli->error);
if($result){
$query="select * from coupons where cid=1";//회원가입축하쿠폰
$result2 = $mysqli->query($query) or die("query error => ".$mysqli->error);
$rs = $result2->fetch_object();
$last_date = date("Y-m-d 23:59:59", strtotime("+30 days")); //30일이 지나면 못쓴다.
$sql="INSERT INTO user_coupons
(couponid, userid, status, use_max_date, regdate, reason)
VALUES(".$rs->cid.", '".$userid."', 1, '".$last_date."', now(), '회원가입')";
$ins=$mysqli->query($sql) or die($mysqli->error);
echo "<script>alert('가입을 환영합니다. 10% 할인 쿠폰을 발행해 드렸습니다.');location.href='/index.php';</script>";
exit;
}else{
echo "<script>alert('회원가입에 실패했습니다.');history.back();</script>";
exit;
}
?>
회원쿠폰 테이블에는 종료일만 들어가 있고 다른 값들은 coupons 테이블에서 가져다 쓸것이다. 사람들마다 쿠폰의 값을 넣어줘도 되지만 쿠폰의 할인 내용은 누구나 똑같아야하니까 coupons 테이블에서 가져다 쓰는 것으로 했다. 물론 coupons 내용을 user_coupons에 다 넣어줘도 된다. 장단점이 있을것이다.
회원가입을 한 후 user_coupons 테이블에 제대로 등록됐는지 확인해보자. 다음엔 사용자 쿠폰 테이블을 관리하는 화면을 만들어보겠다.
반응형
'PHP강좌 > 쇼핑몰만들기강좌' 카테고리의 다른 글
괜찮은 무료 쇼핑몰 템플릿 (0) | 2022.06.08 |
---|---|
php+mysql 쇼핑몰 만들기 강좌 - #23. 쿠폰 발행하기 feat.함수 (0) | 2022.06.08 |
php+mysql 쇼핑몰 만들기 강좌 - #21. 쿠폰 리스트, 쿠폰 등록 (0) | 2022.04.26 |
php+mysql 쇼핑몰 만들기 강좌 - #20. 쿠폰 설계 (0) | 2022.04.20 |
php+mysql 쇼핑몰 만들기 강좌 - #19. Api를 통해 제품 등록하기(인바운드, Putter). feat.CURL (0) | 2022.04.13 |