4

如何在 Spree 结账程序中删除帐单(或送货)地址?我正在使用狂欢 1.3

4

2 回答 2

7

您可以通过将此代码放在您的应用程序中的以下位置从定义中删除交付步骤来删除送货地址:checkout_flowapp/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 不会要求订单的送货地址或送货信息。

于 2012-10-22T03:08:40.460 回答
0

如果您使用的是 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

https://stackoverflow.com/questions/14891781/how-to-remove-the-shipping-address-validation-in-spree-checkout-process/14957973#comment20997203_14957973

于 2013-02-19T13:16:39.357 回答