バージョン選択

フォーラム

メニュー

オンライン状況

25 人のユーザが現在オンラインです。 (11 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 24
seasoft もっと...

サイト内検索

質問 > 管理機能 > クーポンプラグインで、ユーザー1人当たりの回数制限設定方法

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
be-s
投稿日時: 2020/2/14 14:29
対応状況: −−−
一人前
登録日: 2016/2/2
居住地: São Paulo
投稿: 114
クーポンプラグインで、ユーザー1人当たりの回数制限設定方法
▼テンプレート4
[EC-CUBE] 4
[レンタルサーバ] AWS
[OS] CENTOS
[PHP] 7.1
[データベース] MYSQL
[WEBサーバ] APACHE2
[現象]
クーポンプラグインのカスタマイズでユーザー1人当たりの回数制限をかけることは、できるでしょうか?

改良した方はいらっしゃいますでしょうか?
umebius
投稿日時: 2020/2/15 15:49
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: クーポンプラグインで、ユーザー1人当たりの回数制限設定方法
このあたりでクーポンの利用済みか確認しているはずなので、
カスタマイズしてやればできますね。

https://github.com/ec-cube/coupon-plugin/blob/4.0/Controller/CouponShoppingController.php#L154


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対応・SEO ご相談ください。

2系・3系から4系へのアップデート実績豊富、独自の仕組みでデータも丸ごと

be-s
投稿日時: 2020/2/19 15:00
対応状況: −−−
一人前
登録日: 2016/2/2
居住地: São Paulo
投稿: 114
Re: クーポンプラグインで、ユーザー1人当たりの回数制限設定方法
umebiusさん
ありがとうございます。

プラグイン内で 使用回数をカウントする関数を作ろうかなと思っております。
umebius
投稿日時: 2020/2/21 10:15
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: クーポンプラグインで、ユーザー1人当たりの回数制限設定方法
使用回数をカウントするなら
$couponUsedOrNot = $this->couponService->checkCouponUsedOrNot($formCouponCd, $Customer);
の部分を回数で判定に書き換えてやれば良いですね。

app/Plugin/Coupon4/Repository/CouponOrderRepository.phpのfindUseCouponメソッドで受注の配列はすでに取得できていますので、カウントすれば良いかと思います。


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対応・SEO ご相談ください。

2系・3系から4系へのアップデート実績豊富、独自の仕組みでデータも丸ごと

be-s
投稿日時: 2020/9/16 14:42
対応状況: 解決済
一人前
登録日: 2016/2/2
居住地: São Paulo
投稿: 114
Re: クーポンプラグインで、ユーザー1人当たりの回数制限設定方法
返信遅くなってすいません。

このようにカスタマイズしました。
ひとまず思っていたようにうごきそうです。
ありがとうございました。

public function checkCouponUsedOrNot($couponCd, Customer $Customer)
{
$repository = $this->couponOrderRepository;

if ($this->authorizationChecker->isGranted('ROLE_USER')) {
$result = $repository->findUseCoupon($couponCd, $Customer->getId());
} else {
$result = $repository->findUseCoupon($couponCd, $Customer->getEmail());
}

$resultCnt = count($result);
return $resultCnt;

}
erukun
投稿日時: 2022/9/29 20:33
対応状況: 解決済
一人前
登録日: 2021/2/22
居住地: 国内
投稿: 118
Re: クーポンプラグインで、ユーザー1人当たりの回数制限設定方法
大分前のですが失礼します。

回数 無制限もありますが、少し野暮ったい気もするので回数制限してお得感を少しでも演出できれば良いなと考えております。


自分もこちら参考にしましたが、こんなで合っていますでしょうか?2回目まで利用可能(3回目から使用不可に制限した場合です)
色々と可笑しいとは思います。。。
足りない部分を教えて頂けますと幸いです。


アレ。若しかしてこちらは会員ごとに回数を変更させるようなカスタマイズを想定されたものだったのでしょうか?


CouponShoppingController.php
$couponUsedOrNot = $this->couponService->checkCouponUsedOrNot($formCouponCd, $Customer);    
/* 
if ($Coupon && $couponUsedOrNot) {
    // 既に存在している
    $form->get('coupon_cd')->addError(new FormError(trans('plugin_coupon.front.shopping.sameuser')));
    $error = true;
}
*/

if ($Coupon && $couponUsedOrNot >= 2) {
    // 既に同一コードの2回使用履歴が有ればダメ 3回目から利用できません!
    $form->get('coupon_cd')->addError(new FormError(trans('plugin_coupon.front.shopping.sameuser')));
    $error = true;
}



couponService.php
/**
*  ユーザはクーポン1回のみ利用できる.  → 2回まで利用可能
*
* @param string   $couponCd
* @param Customer $Customer
* 
* @return int
*/
public function checkCouponUsedOrNot($couponCd, Customer $Customer)
{
    $repository = $this->couponOrderRepository;

    if ($this->authorizationChecker->isGranted('ROLE_USER')) {
        $result = $repository->findUseCoupon($couponCd, $Customer->getId());
    } else {
        $result = $repository->findUseCoupon($couponCd, $Customer->getEmail());
    }

    /* 
    if (!$result) {
        return false;
    }
    return true;
    */

    $resultCnt = count($result);
    return $resultCnt;
}








スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は87,678名です
総投稿数は109,428件です

投稿数ランキング

1
seasoft
7363
2
468
3217
3
AMUAMU
2712
4
nanasess
2302
5
umebius
2085
6
yuh
1807
7
h_tanaka
1597
8
red
1567
9
mcontact
1196
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.