我刚刚通过以下操作完成了此操作。
如果您删除了“交付”状态,并且希望在“付款”屏幕中呈现其视图,请执行以下操作。
第 1 步:转到“付款”部分,并在要显示“交付”屏幕的位置添加以下行。
<div>
<% @order.state = "delivery" %>
<%= render @order.state, :form => form %>
</div>
第 2 步:此步骤解决了 Shipment_State 问题,当“交付”状态从结帐过程中删除时,订单提示为空白。
转到 app/controllers/checkout_controller_decorator.rb 并粘贴以下代码。
Spree::CheckoutController.class_eval do
def before_payment
before_delivery
if @order.checkout_steps.include? "delivery"
packages = @order.shipments.map { |s| s.to_package }
@differentiator = Spree::Stock::Differentiator.new(@order, packages)
@differentiator.missing.each do |variant, quantity|
@order.contents.remove(variant, quantity)
end
end
end
end
此方法可应用于任何屏幕组合。期待狂欢社区关于他们的想法。任何建议将不胜感激。
谢谢。