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


PHP Cart::getNbProducts方法代码示例

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


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

示例1: initContent

    /**
     * @see FrontController::initContent()
     */
    public function initContent()
    {
        parent::initContent();
        if ($this->context->customer->isLogged()) {
            Tools::redirect('index.php?controller=my-account');
        }
        $fb_connect_appid = Configuration::get('FB_CONNECT_APPID');
        $fb_connect_appkey = Configuration::get('FB_CONNECT_APPKEY');
        $this->redirect_uri = $this->context->link->getModuleLink('fbconnect_psb', 'registration', array('done' => 1), TRUE, $this->context->language->id);
        require_once _PS_ROOT_DIR_ . '/modules/fbconnect_psb/fb_sdk/facebook.php';
        $facebook = new Facebook(array('appId' => $fb_connect_appid, 'secret' => $fb_connect_appkey));
        // Get User ID
        $user = $facebook->getUser();
        // We may or may not have this data based on whether the user is logged in.
        //
        // If we have a $user id here, it means we know the user is logged into
        // Facebook, but we don't know if the access token is valid. An access
        // token is invalid if the user logged out of Facebook.
        if ($user) {
            try {
                // Proceed knowing you have a logged in user who's authenticated.
                $fb_user_profile = $facebook->api('/me');
            } catch (FacebookApiException $e) {
                //die('Error: '.$e);
                error_log($e);
                $user = null;
            }
        } else {
            // Get new Access tokens
            Tools::redirect($facebook->getLoginUrl(array('scope' => 'email')));
        }
        // if user's FB account is linked than log the user in
        if (isset($fb_user_profile['id'])) {
            $sql = 'SELECT `id_customer`
				FROM `' . _DB_PREFIX_ . 'customer_profile_connect`
				WHERE `facebook_id` = \'' . (int) $fb_user_profile['id'] . '\'' . Shop::addSqlRestriction(Shop::SHARE_CUSTOMER);
            if (Db::getInstance()->getValue($sql)) {
                Tools::redirect($this->context->link->getModuleLink('fbconnect_psb', 'login', array(), TRUE, $this->context->language->id));
            }
        }
        if (Tools::getValue('done')) {
            $response = $facebook->getSignedRequest($_REQUEST['signed_request']);
            $reg_metadata_fields = '[{"name":"name"},{"name":"first_name"},{"name":"last_name"},{"name":"email"},{"name":"password"},{"name":"birthday"},{"name":"gender"}]';
            $reg_metadata_fields_clean = preg_replace('/\\s+/', '', $reg_metadata_fields);
            $response_metadata_fields_clean = preg_replace('/\\s+/', '', $response['registration_metadata']['fields']);
            if (strcmp($reg_metadata_fields_clean, $response_metadata_fields_clean) != 0) {
                $this->errors[] = Tools::displayError('registration metadata fields not valid');
            }
            $response_email = trim($response['registration']['email']);
            if (empty($response_email)) {
                $this->errors[] = Tools::displayError('An email address required.');
            } else {
                if (!Validate::isEmail($response_email)) {
                    $this->errors[] = Tools::displayError('Invalid email address.');
                } else {
                    if (Customer::customerExists($response_email)) {
                        // Need to clean up the code here most of it is from
                        // IDFBCon_v.0.2 (Chandra R. Atmaja <chandra.r.atmaja@gmail.com>)
                        // Someone has already registered with this e-mail address
                        // This will link the 1st existing email/account on site with Facebook
                        // and log the user in to the account. Is this safe?
                        $customer = new Customer();
                        $authentication = $customer->getByEmail($response['registration']['email']);
                        // This is done to see if a existing users try's to re-registrar
                        $sql = 'SELECT `facebook_id`
					FROM `' . _DB_PREFIX_ . 'customer_profile_connect`
					WHERE `id_customer` = \'' . (int) $customer->id . '\' ' . Shop::addSqlRestriction(Shop::SHARE_CUSTOMER);
                        $customer_fb_id = Db::getInstance()->getValue($sql);
                        if ($customer_fb_id) {
                            if ($customer_fb_id == (int) $response['user_id']) {
                                Tools::redirect($this->context->link->getModuleLink('fbconnect_psb', 'login', array(), false, $this->context->language->id));
                            } else {
                                $this->errors[] = Tools::displayError('An error occurred while linking your Facebook account.');
                            }
                        } else {
                            if (Db::getInstance()->insert('customer_profile_connect', array('id_customer' => (int) $customer->id, 'facebook_id' => (int) $response['user_id']))) {
                                $this->errors[] = Tools::displayError('an error occurred while linking your Facebook account.');
                            }
                            $customer->active = 1;
                            $customer->deleted = 0;
                            $this->context->cookie->id_customer = intval($customer->id);
                            $this->context->cookie->customer_lastname = $customer->lastname;
                            $this->context->cookie->customer_firstname = $customer->firstname;
                            $this->context->cookie->logged = 1;
                            $this->context->cookie->passwd = $customer->passwd;
                            $this->context->cookie->email = $customer->email;
                            if (Configuration::get('PS_CART_FOLLOWING') and (empty($this->context->cookie->id_cart) or Cart::getNbProducts($this->context->cookie->id_cart) == 0)) {
                                $this->context->cookie->id_cart = intval(Cart::lastNoneOrderedCart(intval($customer->id)));
                            }
                            Module::hookExec('authentication');
                            if ($back = Tools::getValue('back')) {
                                Tools::redirect($back);
                            }
                            Tools::redirect('index.php?controller=my-account');
                        }
                    }
                }
//.........这里部分代码省略.........
开发者ID:codingang,项目名称:PrestaShop-modules-fbConnect_psb,代码行数:101,代码来源:registration.php

示例2: login_customer

 /**
  * Logs a given customer in.
  */
 public static function login_customer($id_customer)
 {
     // Make sure that that the customers exists.
     $sql = "SELECT * FROM `" . _DB_PREFIX_ . "customer` WHERE `id_customer` = '" . pSQL($id_customer) . "'";
     $result = Db::getInstance()->GetRow($sql);
     // The user account has been found!
     if (!empty($result['id_customer'])) {
         // See => CustomerCore::getByEmail
         $customer = new Customer();
         $customer->id = $result['id_customer'];
         foreach ($result as $key => $value) {
             if (key_exists($key, $customer)) {
                 $customer->{$key} = $value;
             }
         }
         // See => AuthControllerCore::processSubmitLogin
         Hook::exec('actionBeforeAuthentication');
         $context = Context::getContext();
         $context->cookie->id_compare = isset($context->cookie->id_compare) ? $context->cookie->id_compare : CompareProduct::getIdCompareByIdCustomer($customer->id);
         $context->cookie->id_customer = (int) $customer->id;
         $context->cookie->customer_lastname = $customer->lastname;
         $context->cookie->customer_firstname = $customer->firstname;
         $context->cookie->logged = 1;
         $customer->logged = 1;
         $context->cookie->is_guest = $customer->isGuest();
         $context->cookie->passwd = $customer->passwd;
         $context->cookie->email = $customer->email;
         // Add customer to the context
         $context->customer = $customer;
         if (Configuration::get('PS_CART_FOLLOWING') && (empty($context->cookie->id_cart) || Cart::getNbProducts($context->cookie->id_cart) == 0) && ($id_cart = (int) Cart::lastNoneOrderedCart($context->customer->id))) {
             $context->cart = new Cart($id_cart);
         } else {
             $context->cart->id_carrier = 0;
             $context->cart->setDeliveryOption(null);
             $context->cart->id_address_delivery = Address::getFirstCustomerAddressId((int) $customer->id);
             $context->cart->id_address_invoice = Address::getFirstCustomerAddressId((int) $customer->id);
         }
         $context->cart->id_customer = (int) $customer->id;
         $context->cart->secure_key = $customer->secure_key;
         $context->cart->save();
         $context->cookie->id_cart = (int) $context->cart->id;
         $context->cookie->update();
         $context->cart->autosetProductAddress();
         Hook::exec('actionAuthentication');
         // Login information have changed, so we check if the cart rules still apply
         CartRule::autoRemoveFromCart($context);
         CartRule::autoAddToCart($context);
         // Customer is now logged in.
         return true;
     }
     // Invalid customer specified.
     return false;
 }
开发者ID:rever92,项目名称:social-login-prestashop,代码行数:56,代码来源:tools.php

示例3: login_customer

 /**
  * Logs a given customer in.
  */
 public static function login_customer($id_customer)
 {
     global $cart, $cookie;
     // Make sure that that the customers exists.
     $sql = "SELECT * FROM `" . _DB_PREFIX_ . "customer` WHERE `id_customer` = '" . pSQL($id_customer) . "'";
     $result = Db::getInstance()->GetRow($sql);
     // The user account has been found!
     if (!empty($result['id_customer'])) {
         // See => CustomerCore::getByEmail
         $customer = new Customer();
         $customer->id = $result['id_customer'];
         foreach ($result as $key => $value) {
             if (key_exists($key, $customer)) {
                 $customer->{$key} = $value;
             }
         }
         // See => AuthControllerCore
         Module::hookExec('beforeAuthentication');
         $cookie->id_compare = isset($cookie->id_compare) ? $cookie->id_compare : CompareProduct::getIdCompareByIdCustomer($customer->id);
         $cookie->id_customer = (int) $customer->id;
         $cookie->customer_lastname = $customer->lastname;
         $cookie->customer_firstname = $customer->firstname;
         $cookie->passwd = $customer->passwd;
         $cookie->logged = 1;
         $cookie->email = $customer->email;
         $cookie->is_guest = $customer->isGuest();
         if (Configuration::get('PS_CART_FOLLOWING') and (empty($cookie->id_cart) or Cart::getNbProducts($cookie->id_cart) == 0)) {
             $cookie->id_cart = (int) Cart::lastNoneOrderedCart((int) $customer->id);
         }
         // Update cart address.
         $cart->id_carrier = 0;
         $cart->id_address_delivery = Address::getFirstCustomerAddressId((int) $customer->id);
         $cart->id_address_invoice = Address::getFirstCustomerAddressId((int) $customer->id);
         $cart->secure_key = $customer->secure_key;
         $cart->update();
         Module::hookExec('authentication');
         // Customer is now logged in.
         return true;
     }
     // Invalid customer specified.
     return false;
 }
开发者ID:avataros,项目名称:social-login-prestashop,代码行数:45,代码来源:tools.php

示例4: syncCookie

 public function syncCookie($customer)
 {
     global $cookie, $cart;
     $cookie->id_customer = (int) $customer->id;
     $cookie->customer_lastname = $customer->lastname;
     $cookie->customer_firstname = $customer->firstname;
     $cookie->logged = 1;
     if (property_exists('Customer', 'logged')) {
         $customer->logged = 1;
     }
     if (method_exists('Customer', 'isGuest')) {
         $cookie->is_guest = $customer->isGuest();
     }
     $cookie->passwd = $customer->passwd;
     $cookie->email = $customer->email;
     // try to reuse the last cart (which wasn't ordered of course) of this logged in customer
     if (Configuration::get('PS_CART_FOLLOWING') and (empty($cookie->id_cart) or Cart::getNbProducts($cookie->id_cart) == 0)) {
         $cookie->id_cart = (int) Cart::lastNoneOrderedCart((int) $customer->id);
     }
     // fix the secure key if we have a cart
     if (Validate::isLoadedObject($cart)) {
         $cart->secure_key = $customer->secure_key;
         $cart->update();
     }
     return $cookie;
 }
开发者ID:madeny,项目名称:cartapi-plugin-prestashop,代码行数:26,代码来源:Login.php

示例5: loginCustomer

 public function loginCustomer($customer)
 {
     global $cookie, $cart;
     $cookie->id_customer = (int) $customer->id;
     $cookie->customer_lastname = $customer->lastname;
     $cookie->customer_firstname = $customer->firstname;
     $cookie->passwd = $customer->passwd;
     $cookie->logged = 1;
     $cookie->email = $customer->email;
     $cookie->is_guest = !Tools::getValue('is_new_customer', 1);
     $cart->secure_key = $customer->secure_key;
     if (Configuration::get('PS_CART_FOLLOWING') and (empty($cookie->id_cart) or Cart::getNbProducts($cookie->id_cart) == 0)) {
         $cookie->id_cart = (int) Cart::lastNoneOrderedCart((int) $customer->id);
     }
     /* Update cart address */
     $cart->id_carrier = 0;
     $cart->id_address_delivery = Address::getFirstCustomerAddressId((int) $customer->id);
     $cart->id_address_invoice = Address::getFirstCustomerAddressId((int) $customer->id);
     $cart->update();
 }
开发者ID:priyankajsr19,项目名称:shalu,代码行数:20,代码来源:FrontController.php

示例6: nbProducts

 /**
  * Return cart products quantity
  *
  * @result integer Products quantity
  */
 public function nbProducts()
 {
     if (!$this->id) {
         return 0;
     }
     return Cart::getNbProducts($this->id);
 }
开发者ID:dev-lav,项目名称:htdocs,代码行数:12,代码来源:Cart.php

示例7: processDeleteProductInCart

    /**
     * This process delete a product from the cart
     */
    protected function processDeleteProductInCart()
    {
        $customization_product = Db::getInstance()->executeS('SELECT * FROM `' . _DB_PREFIX_ . 'customization`
		WHERE `id_cart` = ' . (int) $this->context->cart->id . ' AND `id_product` = ' . (int) $this->id_product . ' AND `id_customization` != ' . (int) $this->customization_id);
        if (count($customization_product)) {
            $product = new Product((int) $this->id_product);
            if ($this->id_product_attribute > 0) {
                $minimal_quantity = (int) Attribute::getAttributeMinimalQty($this->id_product_attribute);
            } else {
                $minimal_quantity = (int) $product->minimal_quantity;
            }
            $total_quantity = 0;
            foreach ($customization_product as $custom) {
                $total_quantity += $custom['quantity'];
            }
            if ($total_quantity < $minimal_quantity) {
                $this->errors[] = $this->trans('You must add %d minimum quantity', array(!Tools::getValue('ajax'), $minimal_quantity), 'Shop.Notifications.Error');
                return false;
            }
        }
        if ($this->context->cart->deleteProduct($this->id_product, $this->id_product_attribute, $this->customization_id, $this->id_address_delivery)) {
            $data = array('id_cart' => (int) $this->context->cart->id, 'id_product' => (int) $this->id_product, 'id_product_attribute' => (int) $this->id_product_attribute, 'customization_id' => (int) $this->customization_id, 'id_address_delivery' => (int) $this->id_address_delivery);
            Hook::exec('actionDeleteProductInCartAfter', $data);
            if (!Cart::getNbProducts((int) $this->context->cart->id)) {
                $this->context->cart->setDeliveryOption(null);
                $this->context->cart->gift = 0;
                $this->context->cart->gift_message = '';
                $this->context->cart->update();
            }
        }
        $removed = CartRule::autoRemoveFromCart();
        CartRule::autoAddToCart();
    }
开发者ID:M03G,项目名称:PrestaShop,代码行数:36,代码来源:CartController.php

示例8: checkValidity


//.........这里部分代码省略.........
        }
        // Check if the cart rules appliy to the shop browsed by the customer
        if ($this->shop_restriction && $context->shop->id && Shop::isFeatureActive()) {
            $id_cart_rule = (int) Db::getInstance()->getValue('
			SELECT crs.id_cart_rule
			FROM ' . _DB_PREFIX_ . 'cart_rule_shop crs
			WHERE crs.id_cart_rule = ' . (int) $this->id . '
			AND crs.id_shop = ' . (int) $context->shop->id);
            if (!$id_cart_rule) {
                return !$display_error ? false : Tools::displayError('You cannot use this voucher');
            }
        }
        // Check if the products chosen by the customer are usable with the cart rule
        if ($this->product_restriction) {
            $r = $this->checkProductRestrictions($context, false, $display_error, $alreadyInCart);
            if ($r !== false && $display_error) {
                return $r;
            } elseif (!$r && !$display_error) {
                return false;
            }
        }
        // Check if the cart rule is only usable by a specific customer, and if the current customer is the right one
        if ($this->id_customer && $context->cart->id_customer != $this->id_customer) {
            if (!Context::getContext()->customer->isLogged()) {
                return !$display_error ? false : Tools::displayError('You cannot use this voucher') . ' - ' . Tools::displayError('Please log in');
            }
            return !$display_error ? false : Tools::displayError('You cannot use this voucher');
        }
        if ($this->minimum_amount) {
            // Minimum amount is converted to the default currency
            $minimum_amount = $this->minimum_amount;
            if ($this->minimum_amount_currency != $context->currency->id) {
                $minimum_amount_currency = new Currency($this->minimum_amount_currency);
                if ($this->minimum_amount == 0 || $minimum_amount_currency->conversion_rate == 0) {
                    $minimum_amount = 0;
                } else {
                    $minimum_amount /= $minimum_amount_currency->conversion_rate;
                }
                $minimum_amount *= $context->currency->conversion_rate;
            }
            $cartTotal = $context->cart->getOrderTotal($this->minimum_amount_tax, Cart::ONLY_PRODUCTS);
            if ($this->minimum_amount_shipping) {
                $cartTotal += $context->cart->getOrderTotal($this->minimum_amount_tax, Cart::ONLY_SHIPPING);
            }
            $products = $context->cart->getProducts();
            $cart_rules = $context->cart->getCartRules();
            foreach ($cart_rules as &$cart_rule) {
                if ($cart_rule['gift_product']) {
                    foreach ($products as $key => &$product) {
                        if (empty($product['gift']) && $product['id_product'] == $cart_rule['gift_product'] && $product['id_product_attribute'] == $cart_rule['gift_product_attribute']) {
                            $cartTotal = Tools::ps_round($cartTotal - $product[$this->minimum_amount_tax ? 'price_wt' : 'price'], (int) $context->currency->decimals * _PS_PRICE_DISPLAY_PRECISION_);
                        }
                    }
                }
            }
            if ($cartTotal < $minimum_amount) {
                return !$display_error ? false : Tools::displayError('You have not reached the minimum amount required to use this voucher');
            }
        }
        /* This loop checks:
        			- if the voucher is already in the cart
        			- if a non compatible voucher is in the cart
        			- if there are products in the cart (gifts excluded)
        			Important note: this MUST be the last check, because if the tested cart rule has priority over a non combinable one in the cart, we will switch them
        		*/
        $nb_products = Cart::getNbProducts($context->cart->id);
        $otherCartRules = $context->cart->getCartRules();
        if (count($otherCartRules)) {
            foreach ($otherCartRules as $otherCartRule) {
                if ($otherCartRule['id_cart_rule'] == $this->id && !$alreadyInCart) {
                    return !$display_error ? false : Tools::displayError('This voucher is already in your cart');
                }
                if ($otherCartRule['gift_product']) {
                    --$nb_products;
                }
                if ($this->cart_rule_restriction && $otherCartRule['cart_rule_restriction'] && $otherCartRule['id_cart_rule'] != $this->id) {
                    $combinable = Db::getInstance()->getValue('
					SELECT id_cart_rule_1
					FROM ' . _DB_PREFIX_ . 'cart_rule_combination
					WHERE (id_cart_rule_1 = ' . (int) $this->id . ' AND id_cart_rule_2 = ' . (int) $otherCartRule['id_cart_rule'] . ')
					OR (id_cart_rule_2 = ' . (int) $this->id . ' AND id_cart_rule_1 = ' . (int) $otherCartRule['id_cart_rule'] . ')');
                    if (!$combinable) {
                        $cart_rule = new CartRule((int) $otherCartRule['id_cart_rule'], $context->cart->id_lang);
                        // The cart rules are not combinable and the cart rule currently in the cart has priority over the one tested
                        if ($cart_rule->priority <= $this->priority) {
                            return !$display_error ? false : Tools::displayError('This voucher is not combinable with an other voucher already in your cart:') . ' ' . $cart_rule->name;
                        } else {
                            $context->cart->removeCartRule($cart_rule->id);
                        }
                    }
                }
            }
        }
        if (!$nb_products) {
            return !$display_error ? false : Tools::displayError('Cart is empty');
        }
        if (!$display_error) {
            return true;
        }
    }
开发者ID:dev-lav,项目名称:htdocs,代码行数:101,代码来源:CartRule.php

示例9: process

 public function process()
 {
     parent::process();
     if (Tools::isSubmit('SubmitPassword')) {
         $new_pass = Tools::getValue('new_password');
         $retype_pass = Tools::getValue('retype_password');
         if (strcmp($new_pass, $retype_pass)) {
             $errors[] = Tools::displayError("Password fields don't match. Please retype.");
         } else {
             $email = Tools::getValue('email');
             $customer = new Customer();
             $customer->getByemail($email);
             if (!Validate::isLoadedObject($customer)) {
                 $errors[] = Tools::displayError('Could not retrieve the account information.');
             } else {
                 $customer->passwd = Tools::encrypt($new_pass);
                 $customer->reset_token = NULL;
                 $customer->reset_time = NULL;
                 if ($customer->update()) {
                     self::$cart->secure_key = $customer->secure_key;
                     self::$cookie->id_customer = (int) $customer->id;
                     self::$cookie->customer_lastname = $customer->lastname;
                     self::$cookie->customer_firstname = $customer->firstname;
                     self::$cookie->passwd = $customer->passwd;
                     self::$cookie->logged = 1;
                     self::$cookie->email = $customer->email;
                     if (Configuration::get('PS_CART_FOLLOWING') and (empty(self::$cookie->id_cart) or Cart::getNbProducts(self::$cookie->id_cart) == 0)) {
                         self::$cookie->id_cart = (int) Cart::lastNoneOrderedCart((int) $customer->id);
                     }
                     self::$cart->update();
                     Tools::redirect('index.php');
                 } else {
                     $errors[] = Tools::displayError('error resetting the password');
                 }
             }
         }
     } else {
         if (Tools::isSubmit('email')) {
             if (!($email = Tools::getValue('email')) or !Validate::isEmail($email)) {
                 $this->errors[] = Tools::displayError('Invalid e-mail address');
             } else {
                 $customer = new Customer();
                 $customer->getByemail($email);
                 if (!Validate::isLoadedObject($customer)) {
                     $this->errors[] = Tools::displayError('There is no account registered to this e-mail address.');
                 } else {
                     if (strtotime($customer->last_passwd_gen . '+' . (int) ($min_time = Configuration::get('PS_PASSWD_TIME_FRONT')) . ' minutes') - time() > 0) {
                         $this->errors[] = Tools::displayError('You can regenerate your password only every') . ' ' . (int) $min_time . ' ' . Tools::displayError('minute(s)');
                     } else {
                         if (Mail::Send((int) self::$cookie->id_lang, 'password_query', Mail::l('Your password reset request at IndusDiva.com'), array('{email}' => $customer->email, '{lastname}' => $customer->lastname, '{firstname}' => $customer->firstname, '{url}' => self::$link->getPageLink('password.php', true) . '?token=' . $customer->secure_key . '&id_customer=' . (int) $customer->id), $customer->email, $customer->firstname . ' ' . $customer->lastname)) {
                             self::$smarty->assign(array('confirmation' => 2, 'email' => $customer->email));
                         } else {
                             $this->errors[] = Tools::displayError('Error occurred when sending the e-mail.');
                         }
                     }
                 }
             }
         } elseif (($token = Tools::getValue('token')) && ($id_customer = (int) Tools::getValue('id_customer'))) {
             $email = Db::getInstance()->getValue('SELECT `email` FROM ' . _DB_PREFIX_ . 'customer c WHERE c.`secure_key` = "' . pSQL($token) . '" AND c.id_customer=' . (int) $id_customer);
             if ($email) {
                 $customer = new Customer();
                 $customer->getByemail($email);
                 if (strtotime($customer->last_passwd_gen . '+' . (int) ($min_time = Configuration::get('PS_PASSWD_TIME_FRONT')) . ' minutes') - time() > 0) {
                     Tools::redirect('authentication.php?error_regen_pwd');
                 } else {
                     self::$smarty->assign(array('password_reset' => 1, 'email' => $customer->email));
                     /*
                     $customer->passwd = Tools::encrypt($password = Tools::passwdGen((int)(MIN_PASSWD_LENGTH)));
                     $customer->last_passwd_gen = date('Y-m-d H:i:s', time());
                     if ($customer->update())
                     {
                     	if (Mail::Send((int)(self::$cookie->id_lang), 'password', Mail::l('Your password'), 
                     	array('{email}' => $customer->email, 
                     		  '{lastname}' => $customer->lastname, 
                     		  '{firstname}' => $customer->firstname, 
                     		  '{passwd}' => $password), 
                     	$customer->email, 
                     	$customer->firstname.' '.$customer->lastname)) 
                     		self::$smarty->assign(array('confirmation' => 1, 'email' => $customer->email));
                     	else
                     		$this->errors[] = Tools::displayError('Error occurred when sending the e-mail.');
                     }
                     else
                     	$this->errors[] = Tools::displayError('An error occurred with your account and your new password cannot be sent to your e-mail. Please report your problem using the contact form.');
                     */
                 }
             } else {
                 $this->errors[] = Tools::displayError('We cannot regenerate your password with the data you submitted');
             }
         } elseif (($token = Tools::getValue('token')) || ($id_customer = Tools::getValue('id_customer'))) {
             $this->errors[] = Tools::displayError('We cannot regenerate your password with the data you submitted');
         }
     }
 }
开发者ID:priyankajsr19,项目名称:indusdiva2,代码行数:94,代码来源:PasswordController.php

示例10: loadCustomer

 /**
  * loadCustomer() method load customer in PS
  *
  * @param numeric $nSocialId
  */
 protected function loadCustomer($nSocialId)
 {
     // get customer ID
     $iCustomerId = self::getCustomerId($nSocialId);
     // auth customer
     $oCustomer = new Customer($iCustomerId);
     // is valid customer
     if (Validate::isLoadedObject($oCustomer)) {
         if (version_compare(_PS_VERSION_, '1.5', '>')) {
             Context::getContext()->cookie->id_customer = intval($oCustomer->id);
             Context::getContext()->cookie->customer_lastname = $oCustomer->lastname;
             Context::getContext()->cookie->customer_firstname = $oCustomer->firstname;
             Context::getContext()->cookie->logged = 1;
             Context::getContext()->cookie->passwd = $oCustomer->passwd;
             Context::getContext()->cookie->email = $oCustomer->email;
             //                Context::getContext()->cookie->is_guest = !Tools::getValue('is_new_customer', 1);
             Context::getContext()->customer->logged = 1;
             if (Configuration::get('PS_CART_FOLLOWING') && (empty(Context::getContext()->cookie->id_cart) || Cart::getNbProducts(Context::getContext()->cookie->id_cart) == 0)) {
                 Context::getContext()->cookie->id_cart = intval(Cart::lastNoneOrderedCart($oCustomer->id));
             }
             Hook::Exec('authentication');
         } else {
             global $cookie;
             $cookie->id_customer = intval($oCustomer->id);
             $cookie->customer_lastname = $oCustomer->lastname;
             $cookie->customer_firstname = $oCustomer->firstname;
             $cookie->logged = 1;
             $cookie->passwd = $oCustomer->passwd;
             $cookie->email = $oCustomer->email;
             //                $cookie->is_guest = !Tools::getValue('is_new_customer', 1);
             $oCustomer->logged = 1;
             if (Configuration::get('PS_CART_FOLLOWING') && (empty($cookie->id_cart) || Cart::getNbProducts($cookie->id_cart) == 0)) {
                 $cookie->id_cart = intval(Cart::lastNoneOrderedCart($oCustomer->id));
             }
             Module::HookExec('authentication');
         }
     } else {
         throw new BT_ConnectorException(FacebookPsConnect::$oModule->l('Internal server error => authentication failed', 'base-connector_class'), 531);
     }
 }
开发者ID:sho5kubota,项目名称:guidingyou2,代码行数:45,代码来源:base-connector_class.php

示例11: init

 public function init()
 {
     self::$amz_payments = new AmzPayments();
     $this->isLogged = (bool) $this->context->customer->id && Customer::customerIdExistsStatic((int) $this->context->cookie->id_customer);
     parent::init();
     header('Cache-Control: no-cache, must-revalidate');
     header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
     $this->display_column_left = false;
     $this->display_column_right = false;
     $this->service = self::$amz_payments->getService();
     $this->nbProducts = $this->context->cart->nbProducts();
     if (Configuration::get('PS_CATALOG_MODE')) {
         $this->errors[] = Tools::displayError('This store has not accepted your new order.');
     }
     if ($this->nbProducts) {
         if (CartRule::isFeatureActive()) {
             if (Tools::isSubmit('submitAddDiscount')) {
                 if (!($code = trim(Tools::getValue('discount_name')))) {
                     $this->errors[] = Tools::displayError('You must enter a voucher code.');
                 } elseif (!Validate::isCleanHtml($code)) {
                     $this->errors[] = Tools::displayError('The voucher code is invalid.');
                 } else {
                     if (($cart_rule = new CartRule(CartRule::getIdByCode($code))) && Validate::isLoadedObject($cart_rule)) {
                         if ($error = $cart_rule->checkValidity($this->context, false, true)) {
                             $this->errors[] = $error;
                         } else {
                             $this->context->cart->addCartRule($cart_rule->id);
                             if (Configuration::get('PS_ORDER_PROCESS_TYPE') == 1) {
                                 Tools::redirect('index.php?controller=order-opc&addingCartRule=1');
                             }
                             Tools::redirect('index.php?controller=order&addingCartRule=1');
                         }
                     } else {
                         $this->errors[] = Tools::displayError('This voucher does not exists.');
                     }
                 }
                 $this->context->smarty->assign(array('errors' => $this->errors, 'discount_name' => Tools::safeOutput($code)));
             } elseif (($id_cart_rule = (int) Tools::getValue('deleteDiscount')) && Validate::isUnsignedId($id_cart_rule)) {
                 $this->context->cart->removeCartRule($id_cart_rule);
                 Tools::redirect('index.php?controller=order-opc');
             }
         }
         if ($this->context->cart->isVirtualCart()) {
             $this->setNoCarrier();
         }
     } else {
         Tools::redirect('index.php?controller=order-opc');
     }
     $this->context->smarty->assign('back', Tools::safeOutput(Tools::getValue('back')));
     if ($this->nbProducts) {
         $this->context->smarty->assign('virtual_cart', $this->context->cart->isVirtualCart());
     }
     $this->context->smarty->assign('is_multi_address_delivery', $this->context->cart->isMultiAddressDelivery() || (int) Tools::getValue('multi-shipping') == 1);
     $this->context->smarty->assign('open_multishipping_fancybox', (int) Tools::getValue('multi-shipping') == 1);
     if ($this->context->cart->nbProducts()) {
         if (Tools::isSubmit('ajax')) {
             if (Tools::isSubmit('method')) {
                 switch (Tools::getValue('method')) {
                     case 'setsession':
                         $this->context->cookie->amazon_id = Tools::getValue('amazon_id');
                         $this->context->cookie->amz_access_token = AmzPayments::prepareCookieValueForPrestaShopUse(Tools::getValue('access_token'));
                         $this->context->cookie->amz_access_token_set_time = time();
                         if (!$this->context->customer->isLogged() && self::$amz_payments->lpa_mode != 'pay') {
                             $d = self::$amz_payments->requestTokenInfo(AmzPayments::prepareCookieValueForAmazonPaymentsUse($this->context->cookie->amz_access_token));
                             if ($d->aud != self::$amz_payments->client_id) {
                                 error_log('auth error LPA');
                                 die('error');
                             }
                             $d = self::$amz_payments->requestProfile(AmzPayments::prepareCookieValueForAmazonPaymentsUse($this->context->cookie->amz_access_token));
                             $customer_userid = $d->user_id;
                             $customer_name = $d->name;
                             $customer_email = $d->email;
                             if ($customers_local_id = AmazonPaymentsCustomerHelper::findByAmazonCustomerId($customer_userid)) {
                                 Hook::exec('actionBeforeAuthentication');
                                 $customer = new Customer();
                                 $authentication = AmazonPaymentsCustomerHelper::getByCustomerID($customers_local_id, true, $customer);
                                 if (isset($authentication->active) && !$authentication->active) {
                                     exit;
                                 } elseif (!$authentication || !$customer->id) {
                                     exit;
                                 } else {
                                     $this->context->cookie->id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare : CompareProduct::getIdCompareByIdCustomer($customer->id);
                                     $this->context->cookie->id_customer = (int) $customer->id;
                                     $this->context->cookie->customer_lastname = $customer->lastname;
                                     $this->context->cookie->customer_firstname = $customer->firstname;
                                     $this->context->cookie->logged = 1;
                                     $customer->logged = 1;
                                     $this->context->cookie->is_guest = $customer->isGuest();
                                     $this->context->cookie->passwd = $customer->passwd;
                                     $this->context->cookie->email = $customer->email;
                                     // Add customer to the context
                                     $this->context->customer = $customer;
                                     if (Configuration::get('PS_CART_FOLLOWING') && (empty($this->context->cookie->id_cart) || Cart::getNbProducts($this->context->cookie->id_cart) == 0) && ($id_cart = (int) Cart::lastNoneOrderedCart($this->context->customer->id))) {
                                         $this->context->cart = new Cart($id_cart);
                                     } else {
                                         $id_carrier = (int) $this->context->cart->id_carrier;
                                         $this->context->cart->id_carrier = 0;
                                         $this->context->cart->setDeliveryOption(null);
                                         $this->context->cart->id_address_delivery = (int) Address::getFirstCustomerAddressId((int) $customer->id);
                                         $this->context->cart->id_address_invoice = (int) Address::getFirstCustomerAddressId((int) $customer->id);
//.........这里部分代码省略.........
开发者ID:paeddl,项目名称:amzpayments-1,代码行数:101,代码来源:amzpayments.php

示例12: initContent

    /**
     * @see FrontController::initContent()
     */
    public function initContent()
    {
        parent::initContent();
        $fb_connect_appid = Configuration::get('FB_CONNECT_APPID');
        $fb_connect_appkey = Configuration::get('FB_CONNECT_APPKEY');
        $this->login_url = $this->context->link->getModuleLink('fbconnect_psb', 'login', array(), TRUE, $this->context->language->id);
        require_once _PS_ROOT_DIR_ . '/modules/fbconnect_psb/fb_sdk/facebook.php';
        $facebook = new Facebook(array('appId' => $fb_connect_appid, 'secret' => $fb_connect_appkey));
        // Get User ID
        $user = $facebook->getUser();
        // We may or may not have this data based on whether the user is logged in.
        //
        // If we have a $user id here, it means we know the user is logged into
        // Facebook, but we don't know if the access token is valid. An access
        // token is invalid if the user logged out of Facebook.
        if ($user) {
            try {
                // Proceed knowing you have a logged in user who's authenticated.
                $fb_user_profile = $facebook->api('/me');
            } catch (FacebookApiException $e) {
                //die('Error: '.$e);
                error_log($e);
                $user = null;
            }
        } else {
            // Get new Access tokens
            Tools::redirect($facebook->getLoginUrl(array('scope' => 'email')));
        }
        // current user state Logged In with FB
        if ($user) {
            //get the user email from DB with FB ID
            $sql = 'SELECT c.`email`
				FROM `' . _DB_PREFIX_ . 'customer` c
					LEFT JOIN `' . _DB_PREFIX_ . 'customer_profile_connect` pc ON pc.id_customer = c.id_customer
				WHERE pc.`facebook_id` = ' . (int) $fb_user_profile['id'] . Shop::addSqlRestriction(Shop::SHARE_CUSTOMER, 'c');
            $email = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql);
            if (empty($email)) {
                Tools::redirect($this->context->link->getModuleLink('fbconnect_psb', 'registration', array(), TRUE, $this->context->language->id));
            } else {
                $customer = new Customer();
                $authentication = $customer->getByEmail(trim($email));
                if (!$authentication || !$customer->id) {
                    $this->errors[] = Tools::displayError('Error: Authentication failed.');
                } else {
                    $this->context->cookie->id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare : CompareProduct::getIdCompareByIdCustomer($customer->id);
                    $this->context->cookie->id_customer = (int) $customer->id;
                    $this->context->cookie->customer_lastname = $customer->lastname;
                    $this->context->cookie->customer_firstname = $customer->firstname;
                    $this->context->cookie->logged = 1;
                    $customer->logged = 1;
                    $this->context->cookie->is_guest = $customer->isGuest();
                    $this->context->cookie->passwd = $customer->passwd;
                    $this->context->cookie->email = $customer->email;
                    // Add customer to the context
                    $this->context->customer = $customer;
                    if (Configuration::get('PS_CART_FOLLOWING') && (empty($this->context->cookie->id_cart) || Cart::getNbProducts($this->context->cookie->id_cart) == 0) && ($id_cart = (int) Cart::lastNoneOrderedCart($this->context->customer->id))) {
                        $this->context->cart = new Cart($id_cart);
                    } else {
                        $this->context->cart->id_carrier = 0;
                        $this->context->cart->setDeliveryOption(null);
                        $this->context->cart->id_address_delivery = Address::getFirstCustomerAddressId((int) $customer->id);
                        $this->context->cart->id_address_invoice = Address::getFirstCustomerAddressId((int) $customer->id);
                    }
                    $this->context->cart->id_customer = (int) $customer->id;
                    $this->context->cart->secure_key = $customer->secure_key;
                    $this->context->cart->save();
                    $this->context->cookie->id_cart = (int) $this->context->cart->id;
                    $this->context->cookie->update();
                    $this->context->cart->autosetProductAddress();
                    Hook::exec('actionAuthentication');
                    // Login information have changed, so we check if the cart rules still apply
                    CartRule::autoRemoveFromCart($this->context);
                    CartRule::autoAddToCart($this->context);
                    if ($back = Tools::getValue('back')) {
                        Tools::redirect(html_entity_decode($back));
                    } else {
                        Tools::redirect('index.php?controller=' . ($this->authRedirection !== false ? url_encode($this->authRedirection) : 'my-account'));
                    }
                }
            }
            $this->context->smarty->assign(array('redirect_uri' => urlencode($this->login_url), 'fb_connect_appid' => $fb_connect_appid, 'fb_connect_error' => $this->errors));
            $this->setTemplate('login_fb.tpl');
        } else {
            if (isset($_GET['error']) && isset($_GET['error_code'])) {
                $msg = 'There was error while trying to get information from Facebook.';
                $msg .= '<br>' . $_GET['error'] . ' - ' . $_GET['error_code'] . ' - ' . $_GET['error_description'] . ' - ' . $_GET['error_reason'];
                $this->errors[] = Tools::displayError($msg);
                $this->setTemplate('login_fb.tpl');
            } else {
                Tools::redirect($facebook->getLoginUrl(array('scope' => 'email')));
            }
        }
    }
开发者ID:codingang,项目名称:PrestaShop-modules-fbConnect_psb,代码行数:96,代码来源:login.php

示例13: init

 public function init()
 {
     self::$amz_payments = new AmzPayments();
     $this->isLogged = (bool) $this->context->customer->id && Customer::customerIdExistsStatic((int) $this->context->cookie->id_customer);
     parent::init();
     /* Disable some cache related bugs on the cart/order */
     header('Cache-Control: no-cache, must-revalidate');
     header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
     $this->display_column_left = false;
     $this->display_column_right = false;
     // Service initialisieren
     $this->service = self::$amz_payments->getService();
     if (Tools::isSubmit('ajax')) {
         if (Tools::isSubmit('method')) {
             switch (Tools::getValue('method')) {
                 case 'redirectAuthentication':
                 case 'setusertoshop':
                     if (Tools::getValue('access_token')) {
                         $this->context->cookie->amz_access_token = AmzPayments::prepareCookieValueForPrestaShopUse(Tools::getValue('access_token'));
                         $this->context->cookie->amz_access_token_set_time = time();
                     } else {
                         if (Tools::getValue('method') == 'redirectAuthentication') {
                             Tools::redirect('index');
                         } else {
                             error_log('Error, method not submitted and no token');
                             die('error');
                         }
                     }
                     if (Tools::getValue('action') == 'fromCheckout') {
                         $accessTokenValue = AmzPayments::prepareCookieValueForAmazonPaymentsUse(Tools::getValue('access_token'));
                     } else {
                         $accessTokenValue = Tools::getValue('access_token');
                     }
                     $d = self::$amz_payments->requestTokenInfo($accessTokenValue);
                     if ($d->aud != self::$amz_payments->client_id) {
                         if (Tools::getValue('method') == 'redirectAuthentication') {
                             Tools::redirect('index');
                         } else {
                             error_log('auth error LPA');
                             die('error');
                         }
                     }
                     $d = self::$amz_payments->requestProfile($accessTokenValue);
                     $customer_userid = $d->user_id;
                     $customer_name = $d->name;
                     $customer_email = $d->email;
                     // $postcode = $d->postal_code;
                     if ($customers_local_id = AmazonPaymentsCustomerHelper::findByAmazonCustomerId($customer_userid)) {
                         // Customer already exists - login
                         Hook::exec('actionBeforeAuthentication');
                         $customer = new Customer();
                         $authentication = AmazonPaymentsCustomerHelper::getByCustomerID($customers_local_id, true, $customer);
                         if (isset($authentication->active) && !$authentication->active) {
                             $this->errors[] = Tools::displayError('Your account isn\'t available at this time, please contact us');
                         } elseif (!$authentication || !$customer->id) {
                             $this->errors[] = Tools::displayError('Authentication failed.');
                         } else {
                             $this->context->cookie->id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare : CompareProduct::getIdCompareByIdCustomer($customer->id);
                             $this->context->cookie->id_customer = (int) $customer->id;
                             $this->context->cookie->customer_lastname = $customer->lastname;
                             $this->context->cookie->customer_firstname = $customer->firstname;
                             $this->context->cookie->logged = 1;
                             $customer->logged = 1;
                             $this->context->cookie->is_guest = $customer->isGuest();
                             $this->context->cookie->passwd = $customer->passwd;
                             $this->context->cookie->email = $customer->email;
                             // Add customer to the context
                             $this->context->customer = $customer;
                             if (Configuration::get('PS_CART_FOLLOWING') && (empty($this->context->cookie->id_cart) || Cart::getNbProducts($this->context->cookie->id_cart) == 0) && ($id_cart = (int) Cart::lastNoneOrderedCart($this->context->customer->id))) {
                                 $this->context->cart = new Cart($id_cart);
                             } else {
                                 $id_carrier = (int) $this->context->cart->id_carrier;
                                 $this->context->cart->id_carrier = 0;
                                 $this->context->cart->setDeliveryOption(null);
                                 $this->context->cart->id_address_delivery = (int) Address::getFirstCustomerAddressId((int) $customer->id);
                                 $this->context->cart->id_address_invoice = (int) Address::getFirstCustomerAddressId((int) $customer->id);
                             }
                             $this->context->cart->id_customer = (int) $customer->id;
                             $this->context->cart->secure_key = $customer->secure_key;
                             if ($this->ajax && isset($id_carrier) && $id_carrier && Configuration::get('PS_ORDER_PROCESS_TYPE')) {
                                 $delivery_option = array($this->context->cart->id_address_delivery => $id_carrier . ',');
                                 $this->context->cart->setDeliveryOption($delivery_option);
                             }
                             $this->context->cart->save();
                             $this->context->cookie->id_cart = (int) $this->context->cart->id;
                             $this->context->cookie->write();
                             $this->context->cart->autosetProductAddress();
                             Hook::exec('actionAuthentication');
                             // Login information have changed, so we check if the cart rules still apply
                             CartRule::autoRemoveFromCart($this->context);
                             CartRule::autoAddToCart($this->context);
                             if (Tools::getValue('action') == 'fromCheckout' && isset($this->context->cookie->amz_connect_order)) {
                                 AmzPayments::switchOrderToCustomer($this->context->customer->id, $this->context->cookie->amz_connect_order, true);
                             }
                             if (Tools::getValue('action') == 'checkout') {
                                 $goto = $this->context->link->getModuleLink('amzpayments', 'amzpayments');
                             } elseif (Tools::getValue('action') == 'fromCheckout') {
                                 $goto = 'index.php?controller=history';
                             } elseif ($this->context->cart->nbProducts()) {
                                 $goto = 'index.php?controller=order';
//.........这里部分代码省略.........
开发者ID:paeddl,项目名称:amzpayments-1,代码行数:101,代码来源:user_to_shop.php

示例14: getPackageShippingCost

 /**
  * Return package shipping cost
  *
  * @param integer $id_carrier Carrier ID (default : current carrier)
  * @param booleal $use_tax
  * @param Country $default_country
  * @param Array $product_list
  * @param array $product_list List of product concerned by the shipping. If null, all the product of the cart are used to calculate the shipping cost
  *
  * @return float Shipping total
  */
 public function getPackageShippingCost($id_carrier = null, $use_tax = true, Country $default_country = null, $product_list = null)
 {
     if ($this->isVirtualCart()) {
         return 0;
     }
     if (!$default_country) {
         $default_country = Context::getContext()->country;
     }
     $complete_product_list = $this->getProducts();
     if (is_null($product_list)) {
         $products = $complete_product_list;
     } else {
         $products = $product_list;
     }
     if (Configuration::get('PS_TAX_ADDRESS_TYPE') == 'id_address_invoice') {
         $address_id = (int) $this->id_address_invoice;
     } elseif (count($product_list)) {
         $prod = current($product_list);
         $address_id = (int) $prod['id_address_delivery'];
     } else {
         $address_id = null;
     }
     if (!Address::addressExists($address_id)) {
         $address_id = null;
     }
     // Order total in default currency without fees
     $order_total = $this->getOrderTotal(true, Cart::ONLY_PHYSICAL_PRODUCTS_WITHOUT_SHIPPING, $product_list);
     // Start with shipping cost at 0
     $shipping_cost = 0;
     // If no product added, return 0
     if ($order_total <= 0 && (!(Cart::getNbProducts($this->id) && is_null($product_list)) || count($product_list) && !is_null($product_list))) {
         return $shipping_cost;
     }
     // Get id zone
     if (!$this->isMultiAddressDelivery() && isset($this->id_address_delivery) && $this->id_address_delivery && Customer::customerHasAddress($this->id_customer, $this->id_address_delivery)) {
         $id_zone = Address::getZoneById((int) $this->id_address_delivery);
     } else {
         if (!Validate::isLoadedObject($default_country)) {
             $default_country = new Country(Configuration::get('PS_COUNTRY_DEFAULT'), Configuration::get('PS_LANG_DEFAULT'));
         }
         $id_zone = (int) $default_country->id_zone;
     }
     if ($id_carrier && !$this->isCarrierInRange((int) $id_carrier, (int) $id_zone)) {
         $id_carrier = '';
     }
     if (empty($id_carrier) && $this->isCarrierInRange((int) Configuration::get('PS_CARRIER_DEFAULT'), (int) $id_zone)) {
         $id_carrier = (int) Configuration::get('PS_CARRIER_DEFAULT');
     }
     if (empty($id_carrier)) {
         if ((int) $this->id_customer) {
             $customer = new Customer((int) $this->id_customer);
             $result = Carrier::getCarriers((int) Configuration::get('PS_LANG_DEFAULT'), true, false, (int) $id_zone, $customer->getGroups());
             unset($customer);
         } else {
             $result = Carrier::getCarriers((int) Configuration::get('PS_LANG_DEFAULT'), true, false, (int) $id_zone);
         }
         foreach ($result as $k => $row) {
             if ($row['id_carrier'] == Configuration::get('PS_CARRIER_DEFAULT')) {
                 continue;
             }
             if (!isset(self::$_carriers[$row['id_carrier']])) {
                 self::$_carriers[$row['id_carrier']] = new Carrier((int) $row['id_carrier']);
             }
             $carrier = self::$_carriers[$row['id_carrier']];
             // Get only carriers that are compliant with shipping method
             if ($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_WEIGHT && $carrier->getMaxDeliveryPriceByWeight((int) $id_zone) === false || $carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_PRICE && $carrier->getMaxDeliveryPriceByPrice((int) $id_zone) === false) {
                 unset($result[$k]);
                 continue;
             }
             // If out-of-range behavior carrier is set on "Desactivate carrier"
             if ($row['range_behavior']) {
                 $check_delivery_price_by_weight = Carrier::checkDeliveryPriceByWeight($row['id_carrier'], $this->getTotalWeight(), (int) $id_zone);
                 $total_order = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING, $product_list);
                 $check_delivery_price_by_price = Carrier::checkDeliveryPriceByPrice($row['id_carrier'], $total_order, (int) $id_zone, (int) $this->id_currency);
                 // Get only carriers that have a range compatible with cart
                 if ($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_WEIGHT && !$check_delivery_price_by_weight || $carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_PRICE && !$check_delivery_price_by_price) {
                     unset($result[$k]);
                     continue;
                 }
             }
             if ($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_WEIGHT) {
                 $shipping = $carrier->getDeliveryPriceByWeight($this->getTotalWeight($product_list), (int) $id_zone);
             } else {
                 $shipping = $carrier->getDeliveryPriceByPrice($order_total, (int) $id_zone, (int) $this->id_currency);
             }
             if (!isset($min_shipping_price)) {
                 $min_shipping_price = $shipping;
             }
             if ($shipping <= $min_shipping_price) {
//.........这里部分代码省略.........
开发者ID:jicheng17,项目名称:vipinsg,代码行数:101,代码来源:Cart.php

示例15: processForm

 protected function processForm()
 {
     if (Tools::getValue('action') == 'tryConnect') {
         if (Tools::getValue('email') == $this->context->cookie->amzConnectEmail) {
             $customer = new Customer();
             $authentication = $customer->getByEmail(trim(Tools::getValue('email')), trim(Tools::getValue('passwd')));
             if (isset($authentication->active) && !$authentication->active) {
                 $this->errors[] = Tools::displayError('Your account isn\'t available at this time, please contact us');
             } elseif (!$authentication || !$customer->id) {
                 $this->errors[] = Tools::displayError('Authentication failed.');
             } else {
                 $authentication->save();
                 AmazonPaymentsCustomerHelper::saveCustomersAmazonReference($authentication, $this->context->cookie->amzConnectCustomerId);
                 $this->context->cookie->id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare : CompareProduct::getIdCompareByIdCustomer($customer->id);
                 $this->context->cookie->id_customer = (int) $customer->id;
                 $this->context->cookie->customer_lastname = $customer->lastname;
                 $this->context->cookie->customer_firstname = $customer->firstname;
                 $this->context->cookie->logged = 1;
                 $customer->logged = 1;
                 $this->context->cookie->is_guest = $customer->isGuest();
                 $this->context->cookie->passwd = $customer->passwd;
                 $this->context->cookie->email = $customer->email;
                 // Add customer to the context
                 $this->context->customer = $customer;
                 if (Configuration::get('PS_CART_FOLLOWING') && (empty($this->context->cookie->id_cart) || Cart::getNbProducts($this->context->cookie->id_cart) == 0) && ($id_cart = (int) Cart::lastNoneOrderedCart($this->context->customer->id))) {
                     $this->context->cart = new Cart($id_cart);
                 } else {
                     $id_carrier = (int) $this->context->cart->id_carrier;
                     $this->context->cart->id_carrier = 0;
                     $this->context->cart->setDeliveryOption(null);
                     $this->context->cart->id_address_delivery = (int) Address::getFirstCustomerAddressId((int) $customer->id);
                     $this->context->cart->id_address_invoice = (int) Address::getFirstCustomerAddressId((int) $customer->id);
                 }
                 $this->context->cart->id_customer = (int) $customer->id;
                 $this->context->cart->secure_key = $customer->secure_key;
                 if ($this->ajax && isset($id_carrier) && $id_carrier && Configuration::get('PS_ORDER_PROCESS_TYPE')) {
                     $delivery_option = array($this->context->cart->id_address_delivery => $id_carrier . ',');
                     $this->context->cart->setDeliveryOption($delivery_option);
                 }
                 $this->context->cart->save();
                 $this->context->cookie->id_cart = (int) $this->context->cart->id;
                 $this->context->cookie->write();
                 $this->context->cart->autosetProductAddress();
                 Hook::exec('actionAuthentication');
                 // Login information have changed, so we check if the cart rules still apply
                 CartRule::autoRemoveFromCart($this->context);
                 CartRule::autoAddToCart($this->context);
                 if (Tools::getValue('toCheckout') == '1') {
                     $goto = $this->context->link->getModuleLink('amzpayments', 'amzpayments');
                 } elseif (Tools::getValue('fromCheckout') == '1') {
                     $goto = 'index.php?controller=history';
                 } elseif ($this->context->cart->nbProducts()) {
                     $goto = 'index.php?controller=order';
                 } else {
                     if (Configuration::get('PS_SSL_ENABLED')) {
                         $goto = _PS_BASE_URL_SSL_ . __PS_BASE_URI__;
                     } else {
                         $goto = _PS_BASE_URL_ . __PS_BASE_URI__;
                     }
                 }
                 Tools::redirect($goto);
             }
         }
     }
 }
开发者ID:paeddl,项目名称:amzpayments-1,代码行数:65,代码来源:connect_accounts.php


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