diff --git a/beike/Admin/Http/Controllers/OrderController.php b/beike/Admin/Http/Controllers/OrderController.php index cf491843..7ddf35a4 100644 --- a/beike/Admin/Http/Controllers/OrderController.php +++ b/beike/Admin/Http/Controllers/OrderController.php @@ -12,7 +12,6 @@ namespace Beike\Admin\Http\Controllers; use Beike\Models\Order; -use Beike\Services\ShipmentService; use Illuminate\Http\Request; use Beike\Repositories\OrderRepo; use Beike\Services\StateMachineService; @@ -69,10 +68,8 @@ class OrderController extends Controller public function show(Request $request, Order $order) { $order->load(['orderTotals', 'orderHistories', 'orderShipments']); - $data = [ - 'order' => $order, - 'statuses' => StateMachineService::getInstance($order)->nextBackendStatuses() - ]; + $data = hook_filter('account_order_detail', ['order' => $order, 'html_items' => []]); + $data['statuses'] = StateMachineService::getInstance($order)->nextBackendStatuses(); return view('admin::pages.orders.form', $data); } diff --git a/beike/Models/Cart.php b/beike/Models/Cart.php index 6dde9274..7885780f 100644 --- a/beike/Models/Cart.php +++ b/beike/Models/Cart.php @@ -10,7 +10,7 @@ class Cart extends Base use HasFactory; protected $fillable = [ - 'customer_id', 'shipping_address_id', 'shipping_method_code', 'payment_address_id', 'payment_method_code' + 'customer_id', 'shipping_address_id', 'shipping_method_code', 'payment_address_id', 'payment_method_code', 'extra' ]; public function customer(): BelongsTo diff --git a/beike/Repositories/CartRepo.php b/beike/Repositories/CartRepo.php index d55cdae1..57a8e087 100644 --- a/beike/Repositories/CartRepo.php +++ b/beike/Repositories/CartRepo.php @@ -57,6 +57,7 @@ class CartRepo $cart->save(); } $cart->loadMissing(['shippingAddress', 'paymentAddress']); + $cart->extra = json_decode($cart->extra, true); return $cart; } diff --git a/beike/Shop/Http/Controllers/Account/OrderController.php b/beike/Shop/Http/Controllers/Account/OrderController.php index 60c5d87b..d79e4d16 100644 --- a/beike/Shop/Http/Controllers/Account/OrderController.php +++ b/beike/Shop/Http/Controllers/Account/OrderController.php @@ -53,7 +53,8 @@ class OrderController extends Controller { $customer = current_customer(); $order = OrderRepo::getOrderByNumber($number, $customer); - return view('account/order_info', ['order' => $order]); + $html = hook_filter('account_order_detail', ['order' => $order, 'html_items' => []]); + return view('account/order_info', $html); } diff --git a/beike/Shop/Services/CheckoutService.php b/beike/Shop/Services/CheckoutService.php index f6dcd6c9..6b216a7a 100644 --- a/beike/Shop/Services/CheckoutService.php +++ b/beike/Shop/Services/CheckoutService.php @@ -80,7 +80,7 @@ class CheckoutService $this->updatePaymentMethod($paymentMethodCode); } - hook_action('after_checkout_update', $requestData); + hook_action('after_checkout_update', ['request_data' => $requestData, 'cart' => $this->cart]); return $this->checkoutData(); } @@ -103,7 +103,7 @@ class CheckoutService StateMachineService::getInstance($order)->changeStatus(StateMachineService::UNPAID, '', true); CartRepo::clearSelectedCartProducts($customer); - hook_action('after_checkout_confirm', $order); + hook_action('after_checkout_confirm', ['order' => $order, 'cart' => $this->cart]); DB::commit(); } catch (\Exception $e) { @@ -207,6 +207,7 @@ class CheckoutService 'shipping_method_code' => $currentCart->shipping_method_code, 'payment_address_id' => $currentCart->payment_address_id, 'payment_method_code' => $currentCart->payment_method_code, + 'extra' => $currentCart->extra, ], 'country_id' => (int)system_setting('base.country_id'), 'customer_id' => $customer->id ?? null, diff --git a/database/migrations/2022_12_28_171057_alter_cart_table.php b/database/migrations/2022_12_28_171057_alter_cart_table.php new file mode 100644 index 00000000..1cb2997a --- /dev/null +++ b/database/migrations/2022_12_28_171057_alter_cart_table.php @@ -0,0 +1,40 @@ +json('extra')->nullable()->after('payment_method_code'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + if (!Schema::hasColumn('carts', 'extra')) { + return; + } + + Schema::table('carts', function (Blueprint $table) { + $table->dropColumn('extra'); + }); + } +};