狂欢 - 自定义结帐流程 - 完成回调后不执行

时间:2012-12-12 15:11:28

标签: spree

我的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进行结账。我不知道这是否相关。

1 个答案:

答案 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