4

Spree チェックアウト ルーチンで請求先 (または配送先) 住所を削除するにはどうすればよいですか? 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

スプリーコアを使用している場合は、これに代わるものがあります

view/spree/checkout/edit ファイルには、error_messages.html.erb = render :partial => 'spree/shared/error_messages', :locals => { :target => @order } を含む render ステートメントがあります。

したがって、_error_messages.html.erb から「船」名を削除する必要があります。そうすれば、この種のエラーは表示されなくなります。

spree/shared/_error_message ファイルに次の変更を加えます。

-target.errors.full_messages.each do |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 に答える