【问题标题】:Silverstripe: SwipeStripe Member/Customer record not definedSilverstripe:未定义 SwipeStripe 成员/客户记录
【发布时间】:2016-06-14 23:25:14
【问题描述】:

所以我将 SwipeStripe 模块用作电子商务商店,并且在将会员详细信息记录为客户详细信息时遇到了问题。我将概述该过程以及到目前为止我所做的尝试。

  • 我目前以我网站的成员身份登录。
  • 我可以查看产品并将其添加到我的购物车。
  • 当我到达结帐页面时,它要求我注册我的详细信息(成为会员)。

我浏览了 Customer.php 和 OrderForm.php 文件。我发现的是:

Customer::currentUser() 没有将我识别为登录用户。

当我打印Member::currentUser() 时,它可以看到我是一个已登录的注册会员,我可以打印该记录的详细信息。

Customer::currentUser()在Customer.php文件中如下:

static function currentUser() {
    $id = Member::currentUserID();
    if($id) {
        return DataObject::get_one("Customer", "\"Member\".\"ID\" = $id");
    }
}

我想知道是否有人可以帮助我理解为什么 Customer::currentUser() 没有将我识别为登录用户?

此外,在 OrderForm.php 中,当我将“注册为成员”表单字段(该函数称为“createFields”)的验证更改为 Member::currentUserID() 时,它会识别出我已登录并跳过该字段部分。只有当它将我的订单和客户详细信息保存到客户数据库表时,它才无法检索我的电子邮件地址。

【问题讨论】:

  • 您登录的用户,您将他们设置为客户还是会员? SwipeStripe 期待客户用户。如果您仅以会员身份登录,则可能会混淆 SwipeStripe 代码。
  • 感谢@3dgoo 的回复,他们已被设置为会员。无论如何让用户既是成员又是具有相同记录的客户?我不想为了使用商店而为我的会员设置 2 个帐户。我已在管理部分将“客户”设置为“成员”组的子组,但我仍然遇到同样的问题。
  • 在 SwipeStripe 中,客户是会员,具有额外的字段和功能。会员不是客户。如果您希望用户能够使用商店,请确保将他们设置为客户。
  • 谢谢@3dgoo,但我如何将他们设置为客户?
  • 一种方法是通过前端通过 SwipeStripe 结帐过程。确保您没有登录,浏览购物车并在结帐时设置一个新的客户用户。

标签: php content-management-system silverstripe swipestripe


【解决方案1】:

我知道这是一篇旧帖子,但我一直使用此代码/方法直到 SS 3.4。

您需要更新 Aram 的代码以使用 SS 3.x.x

https://www.silverstripe.org/community/forums/e-commerce-modules/show/21390

-海伦克拉科

【讨论】:

    猜你喜欢
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 2021-03-04
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多