到目前为止,我只在我的商业网站上使用PayPal结账,而且我已经配置了结帐流程,以便在PayPal的站点上收集所有客户的信息。
然而,我现在正试图添加Stripe作为另一种支付方法。当我使用Stripe时,我需要在我的站点上收集客户的账单信息,所以我需要将计费信息添加到结帐窗格中。
目标
我查看了规则模块中可用的各种商业事件和操作,但是我找不到对这个案例有帮助的任何东西。
发布于 2015-01-19 16:23:19
不可能仅仅通过规则来影响结帐窗格的可见性。相反,您需要使用hook_form_alter()和hook_commerce_checkout_pane_info_alter()。为什么两者都是?
当您检测到PayPal已被选中时,您必须使用表单alter删除或禁用计费信息结帐窗格,这意味着您还需要首先选择付款方法(在最简单的情况下,在其自己的页面上)。
您必须使用结帐窗格信息更改来设置您自己的验证,并为计费信息结帐窗格提交回调。它们还应该检查支付方法,并且只有在选择了正确的支付方法时才调用默认回调。执行此步骤的原因是,签出窗体验证/提交签出窗格的基础是将其配置为出现在签出窗体中的位置,而不是基于它们是否实际出现在最后呈现的窗体上。您可以从签出表单的数组中修改窗格,但它的默认验证回调仍将处理它,就好像它已经存在过一样。
要确定选择了哪种支付方法,请查看$order->data付款_方法的。
发布于 2015-01-19 15:01:09
这需要在签出表单上实现hook_form_alter()。您应该能够切换隐藏的或不为该窗格。根据我自己的经验,您可能需要将隐藏在另一个div中的div包装起来,以使它在隐藏后重新出现。当客户在这两种支付方式之间切换时。
发布于 2015-06-07 11:00:31
转到结帐设置页面,将“记帐信息”拖到禁用部分。
https://drupal.stackexchange.com/questions/144565
复制相似问题