如何在 Spree 结账程序中删除帐单(或送货)地址?我正在使用狂欢 1.3
2 回答
您可以通过将此代码放在您的应用程序中的以下位置从定义中删除交付步骤来删除送货地址:checkout_flow
app/models/spree/order_decorator.rb
Spree::Order.class_eval do
checkout_flow do
go_to_state :address
go_to_state :payment, :if => lambda { |order| order.payment_required? }
go_to_state :confirm, :if => lambda { |order| order.confirmation_required? }
go_to_state :complete
remove_transition :from => :delivery, :to => :confirm
end
end
由于没有送货步骤,Spree 不会要求订单的送货地址或送货信息。
如果您使用的是 spree-core,我有一个替代品
在您的 view/spree/checkout/edit 文件中,有一个 render 语句涉及 error_messages.html.erb = render :partial => 'spree/shared/error_messages', :locals => { :target => @order }
所以现在,您必须从 _error_messages.html.erb 中删除“ship”名称,然后它就不会显示这种错误。
在您的 spree/shared/_error_message 文件中进行以下更改:
-target.errors.full_messages.each 做 |msg|
-unless (msg.include?("Ship"))
= msg
请记住,在此处使用循环相应地更改错误计数。目前我没有使用它,所以发表评论
//= t(:errors_prohibited_this_record_from_being_saved, :count => target.errors.count)
我还在 github 和 stackoverflow 上对同样的问题发表了评论- https://github.com/spree/spree/issues/2571#issuecomment-13769093