我的order_decorator.rb
中有以下代码行Spree::Order.state_machine.before_transition :to => :delivery,
:do => :valid_geolocation?
Spree::Order.state_machine.after_transition :to => :complete,
:do => :notify_shops_new_order
在转换到valid_geolocation?
之前会调用 :delivery
,但在notify_shops_new_order
州之后不会调用complete
。
我不知道为什么。我正在使用PayPal进行结账。我不知道这是否相关。
答案 0 :(得分:2)
如果您正在使用spree_paypal_express gem,它不会使用自然状态机转换到完整状态,因此不会调用完整后回调。过去对我有用的是将您的呼叫链接到finalize!
方法:
# in order_decorator.rb
def finalize_with_notify_shops!
finalize_without_notify_shops!
notify_shops_new_order
end
alias_method_chain :finalize!, :notify_shops