【问题标题】:Spree remove billing address大礼包删除帐单地址
【发布时间】:2012-10-21 16:09:10
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails spree


    【解决方案1】:

    您可以删除送货地址,方法是从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 不会询问订单的送货地址或送货信息。

    【讨论】:

    • 我已经尝试过了,但我仍然收到验证错误(交付中的字段是必需的)。发货字段已从您的地址表单中删除。
    【解决方案2】:

    如果你使用 spree-core,我有一个替代品

    在您的 view/spree/checkout/edit 文件中,有一个 render 语句涉及 error_messages.html.erb = 渲染 :partial => 'spree/shared/error_messages', :locals => { :target => @order }

    所以现在,你必须从_error_messages.html.erb中删除“ship”名称,这样就不会出现这种错误了。

    在您的 spree/shared/_error_message 文件中进行以下更改:

    -target.errors.full_messages.each 执行 |msg|
        -除非 (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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      • 1970-01-01
      • 2020-12-09
      • 1970-01-01
      相关资源
      最近更新 更多