Guest User

Untitled

a guest
Jan 19th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. order_fulfillment:
  2. id: order_fulfillment
  3. group: commerce_order
  4. label: 'Fulfillment'
  5. states:
  6. draft:
  7. label: Draft
  8. awaitingpayment:
  9. label: Pay Later (Furikomi)
  10. fulfillment:
  11. label: Fulfillment
  12. completed:
  13. label: Completed
  14. canceled:
  15. label: Canceled
  16. transitions:
  17. place:
  18. label: 'Place order'
  19. from: [draft, awaitingpayment]
  20. to: fulfillment
  21. paylater:
  22. label: 'Pay later'
  23. from: [draft]
  24. to: awaitingpayment
  25. fulfill:
  26. label: 'Fulfill order'
  27. from: [fulfillment]
  28. to: completed
  29. cancel:
  30. label: 'Cancel order'
  31. from: [draft, fulfillment]
  32. to: canceled
  33.  
  34. public function onPlaceTransition(WorkflowTransitionEvent $event) {
  35. $order = $event->getEntity();
  36.  
  37. $order_type = $order->bundle();
  38.  
  39. $payment_method = NULL;
  40. $payment_gateway = NULL;
  41. if (!$order->get('payment_method')->isEmpty()) {
  42. $payment_method = $order->get('payment_method')->first()->entity->id();
  43. }
  44. if (!$order->get('payment_gateway')->isEmpty()) {
  45. $payment_gateway = $order->get('payment_gateway')->first()->entity->label();
  46. }
  47.  
  48. if ($order_type === 'ABC') {
  49. // https://drupal.stackexchange.com/a/186333/5147
  50. if ($payment_gateway === "Pay Later") {
  51. // https://drupal.stackexchange.com/a/252624/5147
  52. // Set order status to "payment pending"
  53. $order_state = $order->getState();
  54. // Get the allowed transitions for the current state.
  55. $transitions = $order_state->getTransitions();
  56. $order_state->applyTransition($transitions['paylater']);
  57. $order->save();
Add Comment
Please, Sign In to add comment