首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据支付方法启用/禁用商业中的计费信息

如何根据支付方法启用/禁用商业中的计费信息
EN

Drupal用户
提问于 2015-01-18 06:21:45
回答 4查看 2.2K关注 0票数 1

到目前为止,我只在我的商业网站上使用PayPal结账,而且我已经配置了结帐流程,以便在PayPal的站点上收集所有客户的信息。

然而,我现在正试图添加Stripe作为另一种支付方法。当我使用Stripe时,我需要在我的站点上收集客户的账单信息,所以我需要将计费信息添加到结帐窗格中。

目标

  • 如果客户选择Stripe作为付款方式,则显示计费信息。如果客户选择PayPal,请不要显示计费信息。

我查看了规则模块中可用的各种商业事件和操作,但是我找不到对这个案例有帮助的任何东西。

EN

回答 4

Drupal用户

回答已采纳

发布于 2015-01-19 16:23:19

不可能仅仅通过规则来影响结帐窗格的可见性。相反,您需要使用hook_form_alter()和hook_commerce_checkout_pane_info_alter()。为什么两者都是?

当您检测到PayPal已被选中时,您必须使用表单alter删除或禁用计费信息结帐窗格,这意味着您还需要首先选择付款方法(在最简单的情况下,在其自己的页面上)。

您必须使用结帐窗格信息更改来设置您自己的验证,并为计费信息结帐窗格提交回调。它们还应该检查支付方法,并且只有在选择了正确的支付方法时才调用默认回调。执行此步骤的原因是,签出窗体验证/提交签出窗格的基础是将其配置为出现在签出窗体中的位置,而不是基于它们是否实际出现在最后呈现的窗体上。您可以从签出表单的数组中修改窗格,但它的默认验证回调仍将处理它,就好像它已经存在过一样。

要确定选择了哪种支付方法,请查看$order->data付款_方法的。

票数 3
EN

Drupal用户

发布于 2015-01-19 15:01:09

这需要在签出表单上实现hook_form_alter()。您应该能够切换隐藏的或不为该窗格。根据我自己的经验,您可能需要将隐藏在另一个div中的div包装起来,以使它在隐藏后重新出现。当客户在这两种支付方式之间切换时。

票数 2
EN

Drupal用户

发布于 2015-06-07 11:00:31

转到结帐设置页面,将“记帐信息”拖到禁用部分。

票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/144565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档