5
5
*/
6
6
namespace Magento \Checkout \Controller \Onepage ;
7
7
8
+ use Magento \Framework \Object ;
8
9
use Magento \Framework \Exception \PaymentException ;
9
10
10
11
class SaveOrder extends \Magento \Checkout \Controller \Onepage
@@ -26,16 +27,17 @@ public function execute()
26
27
return $ this ->_ajaxRedirectResponse ();
27
28
}
28
29
29
- $ result = [] ;
30
+ $ result = new Object () ;
30
31
try {
31
32
$ agreementsValidator = $ this ->_objectManager ->get ('Magento\Checkout\Model\Agreements\AgreementsValidator ' );
32
33
if (!$ agreementsValidator ->isValid (array_keys ($ this ->getRequest ()->getPost ('agreement ' , [])))) {
33
- $ result ['success ' ] = false ;
34
- $ result ['error ' ] = true ;
35
- $ result ['error_messages ' ] = __ (
36
- 'Please agree to all the terms and conditions before placing the order. '
34
+ $ result ->setData ('success ' , false );
35
+ $ result ->setData ('error ' , true );
36
+ $ result ->setData (
37
+ 'error_messages ' ,
38
+ __ ('Please agree to all the terms and conditions before placing the order. ' )
37
39
);
38
- return $ this ->resultJsonFactory ->create ()->setData ($ result );
40
+ return $ this ->resultJsonFactory ->create ()->setData ($ result-> getData () );
39
41
}
40
42
41
43
$ data = $ this ->getRequest ()->getPost ('payment ' , []);
@@ -54,55 +56,78 @@ public function execute()
54
56
$ this ->getOnepage ()->saveOrder ();
55
57
56
58
$ redirectUrl = $ this ->getOnepage ()->getCheckout ()->getRedirectUrl ();
57
- $ result[ 'success ' ] = true ;
58
- $ result[ 'error ' ] = false ;
59
+ $ result-> setData ( 'success ' , true ) ;
60
+ $ result-> setData ( 'error ' , false ) ;
59
61
} catch (PaymentException $ e ) {
60
62
$ message = $ e ->getMessage ();
61
63
if (!empty ($ message )) {
62
- $ result[ 'error_messages ' ] = $ message ;
64
+ $ result-> setData ( 'error_messages ' , $ message) ;
63
65
}
64
- $ result ['goto_section ' ] = 'payment ' ;
65
- $ result ['update_section ' ] = ['name ' => 'payment-method ' , 'html ' => $ this ->_getPaymentMethodsHtml ()];
66
+ $ result ->setData ('goto_section ' , 'payment ' );
67
+ $ result ->setData (
68
+ 'update_section ' ,
69
+ [
70
+ 'name ' => 'payment-method ' ,
71
+ 'html ' => $ this ->_getPaymentMethodsHtml ()
72
+ ]
73
+ );
66
74
} catch (\Magento \Framework \Exception \LocalizedException $ e ) {
67
75
$ this ->_objectManager ->get ('Psr\Log\LoggerInterface ' )->critical ($ e );
68
76
$ this ->_objectManager ->get ('Magento\Checkout\Helper\Data ' )
69
77
->sendPaymentFailedEmail ($ this ->getOnepage ()->getQuote (), $ e ->getMessage ());
70
- $ result ['success ' ] = false ;
71
- $ result ['error ' ] = true ;
72
- $ result ['error_messages ' ] = $ e ->getMessage ();
78
+ $ result ->setData (
79
+ 'success ' ,
80
+ false
81
+ );
82
+ $ result ->setData ('error ' , true );
83
+ $ result ->setData ('error_messages ' , $ e ->getMessage ());
73
84
$ gotoSection = $ this ->getOnepage ()->getCheckout ()->getGotoSection ();
74
85
if ($ gotoSection ) {
75
- $ result[ 'goto_section ' ] = $ gotoSection ;
86
+ $ result-> setData ( 'goto_section ' , $ gotoSection) ;
76
87
$ this ->getOnepage ()->getCheckout ()->setGotoSection (null );
77
88
}
78
89
79
90
$ updateSection = $ this ->getOnepage ()->getCheckout ()->getUpdateSection ();
80
91
if ($ updateSection ) {
81
92
if (isset ($ this ->_sectionUpdateFunctions [$ updateSection ])) {
82
93
$ updateSectionFunction = $ this ->_sectionUpdateFunctions [$ updateSection ];
83
- $ result ['update_section ' ] = [
84
- 'name ' => $ updateSection ,
85
- 'html ' => $ this ->{$ updateSectionFunction }(),
86
- ];
94
+ $ result ->setData (
95
+ 'update_section ' ,
96
+ [
97
+ 'name ' => $ updateSection ,
98
+ 'html ' => $ this ->{$ updateSectionFunction }(),
99
+ ]
100
+ );
87
101
}
88
102
$ this ->getOnepage ()->getCheckout ()->setUpdateSection (null );
89
103
}
90
104
} catch (\Exception $ e ) {
91
105
$ this ->_objectManager ->get ('Psr\Log\LoggerInterface ' )->critical ($ e );
92
106
$ this ->_objectManager ->get ('Magento\Checkout\Helper\Data ' )
93
107
->sendPaymentFailedEmail ($ this ->getOnepage ()->getQuote (), $ e ->getMessage ());
94
- $ result ['success ' ] = false ;
95
- $ result ['error ' ] = true ;
96
- $ result ['error_messages ' ] = __ ('Something went wrong processing your order. Please try again later. ' );
108
+ $ result ->setData ('success ' , false );
109
+ $ result ->setData ('error ' , true );
110
+ $ result ->setData (
111
+ 'error_messages ' ,
112
+ __ ('Something went wrong processing your order. Please try again later. ' )
113
+ );
97
114
}
98
115
/**
99
116
* when there is redirect to third party, we don't want to save order yet.
100
117
* we will save the order in return action.
101
118
*/
102
119
if (isset ($ redirectUrl )) {
103
- $ result[ 'redirect ' ] = $ redirectUrl ;
120
+ $ result-> setData ( 'redirect ' , $ redirectUrl) ;
104
121
}
105
122
106
- return $ this ->resultJsonFactory ->create ()->setData ($ result );
123
+ $ this ->_eventManager ->dispatch (
124
+ 'checkout_controller_onepage_saveOrder ' ,
125
+ [
126
+ 'result ' => $ result ,
127
+ 'action ' => $ this
128
+ ]
129
+ );
130
+
131
+ return $ this ->resultJsonFactory ->create ()->setData ($ result ->getData ());
107
132
}
108
133
}
0 commit comments