Drupal 是否可以在不创建新用户帐户的情况下使用ubercart进行匿名购买?

Drupal 是否可以在不创建新用户帐户的情况下使用ubercart进行匿名购买?,drupal,ubercart,Drupal,Ubercart,我希望能够让匿名用户购买产品,但不需要在购买产品时创建新帐户 不幸的是,新用户的创建似乎与ubercart的订购系统紧密结合。而且,由于订单模块是ubercart核心的一部分,因此其行为无法轻易覆盖 覆盖创建新用户帐户的一种可能性是向ubercart提供一个伪造的匿名帐户: 钩住$form\u id==“uc\u购物车\u结帐\u审查\u表单”处的钩子\u form\u alter,因为这是ubercart第一次将$order与uid关联的地方。将我们的提交功能添加到队列: //Find out

我希望能够让匿名用户购买产品,但不需要在购买产品时创建新帐户

不幸的是,新用户的创建似乎与ubercart的订购系统紧密结合。而且,由于订单模块是ubercart核心的一部分,因此其行为无法轻易覆盖

覆盖创建新用户帐户的一种可能性是向ubercart提供一个伪造的匿名帐户:

钩住$form\u id==“uc\u购物车\u结帐\u审查\u表单”处的钩子\u form\u alter,因为这是ubercart第一次将$order与uid关联的地方。将我们的提交功能添加到队列:

//Find out if the user is anonymous:
global $user;
if ($user->uid == 0 ) {

  //Load a previously created anonymous user account
  $anonymous_user = mymodule_get_anonymous_user();

  //create the order and assign our anonymous_user_id to it
  $order = uc_order_load($_SESSION['cart_order']);
  $order->uid = $anonymous_user->uid;
  uc_order_save($order);

  //Assign the global user our anonymous user uid
  $user->uid = $anonymous_user->uid;

}
但我真正需要的是能够进行匿名购买,而不必被迫创建新帐户,这种解决方案对我不起作用

除此之外,使用此技术将自动将
匿名用户
登录到我们的
伪匿名用户
帐户。这绝对是我不想要的

在ubercart中为匿名购买创建新用户帐户是否有更好的非管道胶带方式

仅供参考-在这一点上,我被ubercart卡住了,所以我不能使用其他东西

谢谢

D


更新:


我一直想指出,用户不一定会像上面所说的那样自动登录。仅当会话已保存时,此选项才为真。但如Drupal中的一篇文章所示,可以按如下方式绕过自动登录:

//Find out if the user is anonymous:
global $user;
if (!$user->uid) {

  $original_user = $user;

  session_save_session(FALSE);  //Prevents the auto login amongst other effects.

  //Load admin user
  $user = user_load(array('uid' => 1));


  //create the order and assign our anonymous_user_id to it
  $order = uc_order_load($_SESSION['cart_order']);
  $order->uid = $anonymous_user->uid;
  uc_order_save($order);

  //Set things back to normal.
  $user = $original_user;
  session_save_session(TRUE);

}

不幸的是,它为匿名用户创建帐户,以便用户可以登录并查看他们的发票、订单历史记录等

您可以关闭发送的电子邮件,而不激活帐户。这在配置>签出中:

Send new customers a separate e-mail with their account details.
New customer accounts will be set to active.
我认为你最好不要黑Ubercart,因为在这种情况下更新它会更困难。至少这样,他们不会收到电子邮件,也不知道自己有账户


在我看来,你可能需要UID(需要一个用户帐户),否则每个订单都会使用UID 0,因此,如果出现问题,基本上不可能有任何类型的报告/视图或订单历史记录功能。

我已经完成了一个模块,允许匿名用户使用购物车,并且结帐过程非常短。用户应在结账表中填写4个字段(姓名、电子邮件、电话和评论),提交表单后,此数据+购物车内容将发送给经理和客户。 模块稍后将在drupal.org上发布。

为drupal 6.x/Ubercart 2.3提供了一种实现这一点的方法

它的工作原理是使用
hook\u menu\u alter
覆盖
cart/checkout/complete
路径的页面回调,并将其替换为自己的实现,该实现不会为匿名签出创建新的Drupal用户


比直接入侵Ubercart要好,但这样交换Ubercart的核心功能仍然不理想。

谢谢,但Ubercart为匿名用户创建新帐户时做的另一件事是在结帐完成页面上发布该信息。如果我不想让那个用户知道这个帐户,我也需要一个方法来解决这个问题?好的,我看到我可以编辑结帐完成消息。所以这非常有帮助!谢谢你发表了吗?发现了,但没有看到任何与UC有关的发表,所以也许它没有在白天发表。