/** * Signs user up. * * @return Member|null the saved model or null if saving fails */ public function signup() { if ($this->validate()) { $connection = yii::$app->db; $transaction = $connection->beginTransaction(); $pw = $this->password; try { $member = new Member(); $member->email = $this->email; $member->setPassword($pw); $member->generateAuthKey(); $member->beforeSave(TRUE); $member->save(); $member_profile = new MemberProfile(); $member_profile->name = $this->name; $member_profile->address = $this->address; $member_profile->contact_number = $this->contact_number; $member_profile->member_id = $member->id; $member_profile->beforeSave(TRUE); $member_profile->save(); if (1 == $this->is_affiliate) { $affiliate = new ApMembers(); $affiliate->email = $member->email; $affiliate->fullname = $this->name; $affiliate->balance = '0.00'; $affiliate->terms = '1'; $affiliate->password = password_hash($pw, PASSWORD_DEFAULT, ["cost" => 10]); $affiliate->admin_user = '******'; $affiliate->browser = $_SERVER['HTTP_USER_AGENT']; $affiliate->referrar_id = $this->referrar_id; $affiliate->save(); } $transaction->commit(); return $member; } catch (Exception $exc) { $transaction->rollBack(); throw $e; } } return null; }
public function actionCart() { $user_id = 0; if (!Yii::$app->user->isGuest) { $user_id = Yii::$app->user->identity->id; $email = Yii::$app->user->identity->email; } $cart_json = []; if (isset($_COOKIE['cart_' . $user_id])) { $cart_json = Json::decode($_COOKIE['cart_' . $user_id]); } if (isset($_COOKIE['cart_0'])) { $cart_json = Json::decode($_COOKIE['cart_0']); } $ar_product_id = array_keys($cart_json); $cart_items = Product::find()->where(['in', 'id', $cart_json])->all(); $affiliate = \frontend\models\ApMembers::find()->getAffiliateByEmail(Yii::$app->user->identity->email)->one(); // add a new cookie to track affiliate sale $cookies = Yii::$app->response->cookies; $cookies->add(new \yii\web\Cookie(['name' => 'ap_ref_tracking', 'value' => $affiliate->id])); return $this->render('cart', ['cart_items' => $cart_items, 'cart_json' => $cart_json]); }