如果配送插件关闭或卸载,则重新计算运费
This commit is contained in:
parent
9f67ec43f0
commit
bb346ab584
|
|
@ -24,7 +24,7 @@ class CartRepo
|
||||||
* 创建购物车
|
* 创建购物车
|
||||||
*
|
*
|
||||||
* @param $customer
|
* @param $customer
|
||||||
* @return Builder|Model|object|null
|
* @return Cart
|
||||||
*/
|
*/
|
||||||
public static function createCart($customer)
|
public static function createCart($customer)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ class ShippingService
|
||||||
/**
|
/**
|
||||||
* @param CheckoutService $checkout
|
* @param CheckoutService $checkout
|
||||||
* @return array|null
|
* @return array|null
|
||||||
* @throws \Exception
|
* @throws \Exception|\Throwable
|
||||||
*/
|
*/
|
||||||
public static function getTotal(CheckoutService $checkout): ?array
|
public static function getTotal(CheckoutService $checkout): ?array
|
||||||
{
|
{
|
||||||
|
|
@ -31,9 +31,18 @@ class ShippingService
|
||||||
}
|
}
|
||||||
|
|
||||||
$methodArray = explode('.', $shippingMethod);
|
$methodArray = explode('.', $shippingMethod);
|
||||||
$pluginCode = Str::studly($methodArray[0]);
|
$shippingPluginCode = $methodArray[0];
|
||||||
$className = "Plugin\\{$pluginCode}\\Bootstrap";
|
$pluginCode = Str::studly($shippingPluginCode);
|
||||||
|
|
||||||
|
$plugin = app('plugin')->getPlugin($shippingPluginCode);
|
||||||
|
if (empty($plugin) || !$plugin->getInstalled() || !$plugin->getEnabled()) {
|
||||||
|
$cart = $checkout->cart;
|
||||||
|
$cart->shipping_method_code = '';
|
||||||
|
$cart->saveOrFail();
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$className = "Plugin\\{$pluginCode}\\Bootstrap";
|
||||||
if (!method_exists($className, 'getShippingFee')) {
|
if (!method_exists($className, 'getShippingFee')) {
|
||||||
throw new \Exception("请在插件 {$className} 实现方法: public function getShippingFee(CheckoutService \$checkout)");
|
throw new \Exception("请在插件 {$className} 实现方法: public function getShippingFee(CheckoutService \$checkout)");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue