当前位置: 首页>>代码示例>>PHP>>正文


PHP Order::generateFromCart方法代码示例

本文整理汇总了PHP中app\models\Order::generateFromCart方法的典型用法代码示例。如果您正苦于以下问题:PHP Order::generateFromCart方法的具体用法?PHP Order::generateFromCart怎么用?PHP Order::generateFromCart使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在app\models\Order的用法示例。


在下文中一共展示了Order::generateFromCart方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: actionPlaceOrder

 public function actionPlaceOrder()
 {
     $shopCart = $this->getShoppingCart();
     $user = $this->getLoggedUser();
     if (!$shopCart->hasItems()) {
         return $this->render('index');
     }
     $destination_id = Yii::$app->request->post('destination_id');
     if (empty($destination_id)) {
         return $this->render('checkout', ['error' => Yii::t('app', 'Select a destination')]);
     }
     /** @var UserShippingAddress $destination */
     $destination = UserShippingAddress::findOne($destination_id);
     if (is_null($destination) || $destination->user_id != $user->id) {
         return $this->render('checkout', ['error' => Yii::t('app', 'Select a destination')]);
     }
     $order = null;
     if ($shopCart->getTotal() > 0) {
         $payment_id = Yii::$app->request->post('payment_id');
         if (empty($payment_id)) {
             return $this->render('checkout', ['error' => Yii::t('app', 'Select a payment method')]);
         }
         /** @var UserAuthorizeNet $uan */
         $uan = UserAuthorizeNet::findOne($payment_id);
         if (is_null($uan) || $uan->user_id != $user->id) {
             return $this->render('checkout', ['error' => Yii::t('app', 'Select a payment method')]);
         }
         $order = Order::generateFromCart($shopCart, $user, $destination);
         $order->message = isset($_REQUEST['message']) ? $_REQUEST['message'] : '';
         $order->status = Order::STATUS_PENDING;
         $order->save();
         $uan->postPayment($order);
     } else {
         $order = Order::generateFromCart($shopCart, $user, $destination);
         $order->status = Order::STATUS_APPROVED;
         $order->message = isset($_REQUEST['message']) ? $_REQUEST['message'] : '';
         $order->save();
     }
     if (is_null($order)) {
         return $this->redirect(['index']);
     } else {
         //generate emails
         $order->generateEmailToBuyer();
         $order->generateEmailToAdmin();
         if ($order->status == Order::STATUS_APPROVED) {
             $order->generateEmailToDestination();
             $order->generateEmailToProviders();
         }
         StoreUtils::sendPendingEmails();
         $shopCart->items = [];
         $user->resetUserShopCart();
         return $this->render('order_result', ['model' => $order]);
     }
 }
开发者ID:rcjusto,项目名称:simplestore,代码行数:54,代码来源:ShopcartController.php


注:本文中的app\models\Order::generateFromCart方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。