File: /var/www/vhost/disk-apps/magento.bikenow.co/vendor/magento/module-payment/Block/Info/Cc.php
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Payment\Block\Info;
/**
* Credit card generic payment info
*
* @api
* @since 100.0.2
*/
class Cc extends \Magento\Payment\Block\Info
{
/**
* Payment config model
*
* @var \Magento\Payment\Model\Config
*/
protected $_paymentConfig;
/**
* @param \Magento\Framework\View\Element\Template\Context $context
* @param \Magento\Payment\Model\Config $paymentConfig
* @param array $data
*/
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Magento\Payment\Model\Config $paymentConfig,
array $data = []
) {
parent::__construct($context, $data);
$this->_paymentConfig = $paymentConfig;
}
/**
* Retrieve credit card type name
*
* @return string
*/
public function getCcTypeName()
{
$types = $this->_paymentConfig->getCcTypes();
$ccType = $this->getInfo()->getCcType();
if (isset($types[$ccType])) {
return $types[$ccType];
}
return empty($ccType) ? __('N/A') : $ccType;
}
/**
* Whether current payment method has credit card expiration info
*
* @return bool
*/
public function hasCcExpDate()
{
return (int)$this->getInfo()->getCcExpMonth() || (int)$this->getInfo()->getCcExpYear();
}
/**
* Retrieve CC expiration month
*
* @return string
*/
public function getCcExpMonth()
{
$month = $this->getInfo()->getCcExpMonth();
if ($month < 10) {
$month = '0' . $month;
}
return $month;
}
/**
* Retrieve CC expiration date
*
* @return \DateTime
*/
public function getCcExpDate()
{
$date = new \DateTime('now', new \DateTimeZone($this->_localeDate->getConfigTimezone()));
$date->setDate($this->getInfo()->getCcExpYear(), $this->getInfo()->getCcExpMonth() + 1, 0);
return $date;
}
/**
* Prepare credit card related payment info
*
* @param \Magento\Framework\DataObject|array $transport
* @return \Magento\Framework\DataObject
*/
protected function _prepareSpecificInformation($transport = null)
{
if (null !== $this->_paymentSpecificInformation) {
return $this->_paymentSpecificInformation;
}
$transport = parent::_prepareSpecificInformation($transport);
$data = [];
if ($ccType = $this->getCcTypeName()) {
$data[(string)__('Credit Card Type')] = $ccType;
}
if ($this->getInfo()->getCcLast4()) {
$data[(string)__('Credit Card Number')] = sprintf('xxxx-%s', $this->getInfo()->getCcLast4());
}
if (!$this->getIsSecureMode()) {
if ($ccSsIssue = $this->getInfo()->getCcSsIssue()) {
$data[(string)__('Switch/Solo/Maestro Issue Number')] = $ccSsIssue;
}
$year = $this->getInfo()->getCcSsStartYear();
$month = $this->getInfo()->getCcSsStartMonth();
if ($year && $month) {
$data[(string)__('Switch/Solo/Maestro Start Date')] = $this->_formatCardDate($year, $month);
}
}
return $transport->setData(array_merge($data, $transport->getData()));
}
/**
* Format year/month on the credit card
*
* @param string $year
* @param string $month
* @return string
*/
protected function _formatCardDate($year, $month)
{
return sprintf('%s/%s', sprintf('%02d', $month), $year);
}
}