/** * {@inheritdoc} */ public function getSectionData() { $customerId = $this->currentCustomer->getCustomerId(); if ($this->paypalData->shouldAskToCreateBillingAgreement($this->config, $customerId)) { return ['askToCreate' => true, 'confirmUrl' => $this->escaper->escapeUrl($this->urlBuilder->getUrl($this->startAction, [\Magento\Paypal\Model\Express\Checkout::PAYMENT_INFO_TRANSPORT_BILLING_AGREEMENT => 1])), 'confirmMessage' => $this->escaper->escapeJsQuote(__('Would you like to sign a billing agreement to streamline further purchases with PayPal?'))]; } return []; }
/** * {@inheritdoc} */ public function getSectionData() { if (!$this->currentCustomer->getCustomerId()) { return []; } $customer = $this->currentCustomer->getCustomer(); return ['fullname' => $this->customerViewHelper->getCustomerName($customer), 'firstname' => $customer->getFirstname()]; }
/** * Return the full name of the customer currently logged in * * @return string|null */ public function getCustomerName() { try { $customer = $this->customerRepository->getById($this->currentCustomer->getCustomerId()); return $this->escapeHtml($this->_viewHelper->getCustomerName($customer)); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { return null; } }
/** * Return collection of reviews * * @return array|\Magento\Review\Model\Resource\Review\Product\Collection */ public function getReviews() { if (!($customerId = $this->currentCustomer->getCustomerId())) { return []; } if (!$this->_collection) { $this->_collection = $this->_collectionFactory->create(); $this->_collection->addStoreFilter($this->_storeManager->getStore()->getId())->addCustomerFilter($customerId)->setDateOrder()->setPageSize(5)->load()->addReviewSummary(); } return $this->_collection; }
/** * Retrieve available customer billing agreements * * @return array */ protected function getBillingAgreements() { $customerId = $this->currentCustomer->getCustomerId(); $data = []; if (!$customerId) { return $data; } $collection = $this->agreementFactory->create()->getAvailableCustomerBillingAgreements($customerId); foreach ($collection as $item) { $data[] = ['id' => $item->getId(), 'referenceId' => $item->getReferenceId()]; } return $data; }
/** * Return true if order(s) has one or more downloadable products * * @return bool */ public function getOrderHasDownloadable() { $hasDownloadableFlag = $this->_checkoutSession->getHasDownloadableProducts(true); if (!$this->isOrderVisible()) { return false; } /** * if use guest checkout */ if (!$this->currentCustomer->getCustomerId()) { return false; } return $hasDownloadableFlag; }
/** * Class constructor * * @return void */ protected function _construct() { parent::_construct(); $purchased = $this->_linksFactory->create()->addFieldToFilter('customer_id', $this->currentCustomer->getCustomerId())->addOrder('created_at', 'desc'); $this->setPurchased($purchased); $purchasedIds = []; foreach ($purchased as $_item) { $purchasedIds[] = $_item->getId(); } if (empty($purchasedIds)) { $purchasedIds = [null]; } $purchasedItems = $this->_itemsFactory->create()->addFieldToFilter('purchased_id', ['in' => $purchasedIds])->addFieldToFilter('status', ['nin' => [Item::LINK_STATUS_PENDING_PAYMENT, Item::LINK_STATUS_PAYMENT_REVIEW]])->setOrder('item_id', 'desc'); $this->setItems($purchasedItems); }
/** * @return \Magento\Framework\View\Element\AbstractBlock */ protected function _beforeToHtml() { $result = parent::_beforeToHtml(); /** @var \Magento\Paypal\Model\Config $config */ $config = $this->_paypalConfigFactory->create(); $config->setMethod($this->_paymentMethodCode); $isInCatalog = $this->getIsInCatalogProduct(); if (!$this->_shortcutValidator->validate($this->_paymentMethodCode, $isInCatalog)) { $this->_shouldRender = false; return $result; } $quote = $isInCatalog || !$this->_checkoutSession ? null : $this->_checkoutSession->getQuote(); // set misc data $this->setShortcutHtmlId($this->_mathRandom->getUniqueHash('ec_shortcut_'))->setCheckoutUrl($this->getUrl($this->_startAction)); // use static image if in catalog if ($isInCatalog || null === $quote) { $this->setImageUrl($config->getExpressCheckoutShortcutImageUrl($this->_localeResolver->getLocale())); } else { /**@todo refactor checkout model. Move getCheckoutShortcutImageUrl to helper or separate model */ $parameters = ['params' => ['quote' => $quote, 'config' => $config]]; $checkoutModel = $this->_checkoutFactory->create($this->_checkoutType, $parameters); $this->setImageUrl($checkoutModel->getCheckoutShortcutImageUrl()); } // ask whether to create a billing agreement $customerId = $this->currentCustomer->getCustomerId(); // potential issue for caching if ($this->_paypalData->shouldAskToCreateBillingAgreement($config, $customerId)) { $this->setConfirmationUrl($this->getUrl($this->_startAction, [\Magento\Paypal\Model\Express\Checkout::PAYMENT_INFO_TRANSPORT_BILLING_AGREEMENT => 1])); $this->setConfirmationMessage(__('Would you like to sign a billing agreement to streamline further purchases with PayPal?')); } return $result; }
/** * @return string */ protected function _toHtml() { if ($this->currentCustomer->getCustomerId()) { return parent::_toHtml(); } else { return ''; } }
/** * @return int */ public function getCompareItems() { if (!$this->_compareItems) { $this->_compareItems = $this->_createProductCompareCollection()->setStoreId($this->_storeManager->getStore()->getId()); $this->_compareItems->setCustomerId($this->currentCustomer->getCustomerId()); $this->_compareItems->setCustomerId($this->_customerSession->getCustomerId()); $this->_compareItems->addAttributeToSelect('name')->useProductItem()->load(); } return $this->_compareItems; }
/** * Get all tax rates JSON for all product tax classes. * * @return string */ public function getAllRatesByProductClassJson() { $result = []; foreach ($this->productTaxClassSource->getAllOptions() as $productTaxClass) { $taxClassId = $productTaxClass['value']; $taxRate = $this->calculationService->getDefaultCalculatedRate($taxClassId, $this->currentCustomer->getCustomerId(), $this->getStore()->getId()); $result["value_{$taxClassId}"] = $taxRate; } return $this->jsonHelper->jsonEncode($result); }
/** * Return billing agreement code for method * * @param string $code * @return null|string */ protected function getBillingAgreementCode($code) { $pre = __METHOD__ . ' : '; $this->_logger->debug($pre . 'bof'); $customerId = $this->currentCustomer->getCustomerId(); $this->config->setMethod($code); $this->_logger->debug($pre . 'eof'); // always return null return $this->payfastHelper->shouldAskToCreateBillingAgreement($this->config, $customerId); }
/** * @return \Magento\Customer\Api\Data\CustomerInterface|null */ public function getCustomer() { $customer = $this->getData('customer'); if ($customer === null) { try { $customer = $this->customerRepository->getById($this->currentCustomer->getCustomerId()); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { return null; } $this->setData('customer', $customer); } return $customer; }
/** * @return \Magento\Customer\Service\V1\Data\Customer|null */ public function getCustomer() { $customer = $this->getData('customer'); if (is_null($customer)) { try { $customer = $this->_customerAccountService->getCustomer($this->currentCustomer->getCustomerId()); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { return null; } $this->setData('customer', $customer); } return $customer; }
/** * Composes configuration for js * * @return string */ public function getJsonConfig() { $store = $this->getCurrentStore(); $currentProduct = $this->getProduct(); /** * @var \Magento\ConfigurableProduct\Pricing\Price\AttributePrice $attributePrice */ $attributePrice = $currentProduct->getPriceInfo()->getPrice('attribute_price'); $options = $this->helper->getOptions($currentProduct, $this->getAllowProducts()); $attributes = $attributePrice->prepareAttributes($options); $config = array('attributes' => $attributes['priceOptions'], 'template' => str_replace('%s', '#{price}', $store->getCurrentCurrency()->getOutputFormat()), 'basePrice' => $this->_registerJsPrice($this->_convertPrice($currentProduct->getFinalPrice())), 'oldPrice' => $this->_registerJsPrice($this->_convertPrice($currentProduct->getPrice())), 'productId' => $currentProduct->getId(), 'chooseText' => __('Choose an Option...'), 'taxConfig' => $attributePrice->getTaxConfig($this->currentCustomer->getCustomerId()), 'images' => $options['images'], 'baseImage' => $options['baseImage']); if ($currentProduct->hasPreconfiguredValues() && !empty($attributes['defaultValues'])) { $config['defaultValues'] = $attributes['defaultValues']; } $config = array_merge($config, $this->_getAdditionalConfig()); return $this->jsonEncoder->encode($config); }
/** * Retrieve Product Compare items collection * * @return \Magento\Catalog\Model\ResourceModel\Product\Compare\Item\Collection */ public function getItems() { if ($this->_items === null) { $this->_compareProduct->setAllowUsedFlat(false); $this->_items = $this->_itemCollectionFactory->create(); $this->_items->useProductItem(true)->setStoreId($this->_storeManager->getStore()->getId()); if ($this->httpContext->getValue(Context::CONTEXT_AUTH)) { $this->_items->setCustomerId($this->currentCustomer->getCustomerId()); } elseif ($this->_customerId) { $this->_items->setCustomerId($this->_customerId); } else { $this->_items->setVisitorId($this->_customerVisitor->getId()); } $this->_items->addAttributeToSelect($this->_catalogConfig->getProductAttributes())->loadComparableAttributes()->addMinimalPrice()->addTaxPercents()->setVisibility($this->_catalogProductVisibility->getVisibleInSiteIds()); } return $this->_items; }
/** * Returns default shipping address for current customer * * @return AddressInterface|null */ public function getDefaultShippingAddress() { return $this->accountManagement->getDefaultShippingAddress($this->currentCustomer->getCustomerId()); }
/** * Initialize review collection * * @return $this */ protected function _initCollection() { $this->_collection = $this->_collectionFactory->create(); $this->_collection->addStoreFilter($this->_storeManager->getStore()->getId())->addCustomerFilter($this->currentCustomer->getCustomerId())->setDateOrder(); return $this; }
/** * Return billing agreement code for method * * @param string $code * @return null|string */ protected function getBillingAgreementCode($code) { $customerId = $this->currentCustomer->getCustomerId(); $this->config->setMethod($code); return $this->paypalHelper->shouldAskToCreateBillingAgreement($this->config, $customerId) ? Express\Checkout::PAYMENT_INFO_TRANSPORT_BILLING_AGREEMENT : null; }
/** * Return true if order(s) has one or more downloadable products * * @return bool */ private function orderHasDownloadableProducts() { return $this->isVisible($this->_checkoutSession->getLastRealOrder()) && $this->currentCustomer->getCustomerId() ? $this->_checkoutSession->getHasDownloadableProducts(true) : false; }
/** * Returns default shipping address for current customer * * @return Address|null */ public function getDefaultShippingAddress() { return $this->customerAddressService->getDefaultShippingAddress($this->currentCustomer->getCustomerId()); }
/** * Get billing agreement code * * @return string|null */ public function getBillingAgreementCode() { $customerId = $this->currentCustomer->getCustomerId(); return $this->_paypalData->shouldAskToCreateBillingAgreement($this->_config, $customerId) ? \Magento\Paypal\Model\Express\Checkout::PAYMENT_INFO_TRANSPORT_BILLING_AGREEMENT : null; }
/** * @return string */ protected function _toHtml() { return $this->currentCustomer->getCustomerId() ? parent::_toHtml() : ''; }
/** * Check whether current customer is review owner * * @return bool */ public function isReviewOwner() { return $this->getReviewData()->getCustomerId() == $this->currentCustomer->getCustomerId(); }