本文整理汇总了PHP中Magento\Framework\DataObject::getCountryId方法的典型用法代码示例。如果您正苦于以下问题:PHP DataObject::getCountryId方法的具体用法?PHP DataObject::getCountryId怎么用?PHP DataObject::getCountryId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Framework\DataObject
的用法示例。
在下文中一共展示了DataObject::getCountryId方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getStoreInformationObject
/**
* Retrieve generic object with all the misc store information values
*
* @param Store $store
* @return DataObject
*/
public function getStoreInformationObject(Store $store)
{
$info = new DataObject(['name' => $store->getConfig(self::XML_PATH_STORE_INFO_NAME), 'phone' => $store->getConfig(self::XML_PATH_STORE_INFO_PHONE), 'hours' => $store->getConfig(self::XML_PATH_STORE_INFO_HOURS), 'street_line1' => $store->getConfig(self::XML_PATH_STORE_INFO_STREET_LINE1), 'street_line2' => $store->getConfig(self::XML_PATH_STORE_INFO_STREET_LINE2), 'city' => $store->getConfig(self::XML_PATH_STORE_INFO_CITY), 'postcode' => $store->getConfig(self::XML_PATH_STORE_INFO_POSTCODE), 'region_id' => $store->getConfig(self::XML_PATH_STORE_INFO_REGION_CODE), 'country_id' => $store->getConfig(self::XML_PATH_STORE_INFO_COUNTRY_CODE), 'vat_number' => $store->getConfig(self::XML_PATH_STORE_INFO_VAT_NUMBER)]);
if ($info->getRegionId()) {
$info->setRegion($this->regionFactory->create()->load($info->getRegionId())->getName());
}
if ($info->getCountryId()) {
$info->setCountry($this->countryFactory->create()->loadByCode($info->getCountryId())->getName());
}
return $info;
}
示例2: beforeSave
/**
* Prepare object for save
*
* @param \Magento\Framework\DataObject $object
* @return $this
*/
public function beforeSave($object)
{
$region = $object->getData('region');
if (is_numeric($region)) {
$regionModel = $this->_createRegionInstance();
$regionModel->load($region);
if ($regionModel->getId() && $object->getCountryId() == $regionModel->getCountryId()) {
$object->setRegionId($regionModel->getId())->setRegion($regionModel->getName());
}
}
return $this;
}
示例3: _prepareArrayRow
/**
* Prepare existing row data object
*
* @param DataObject $row
* @return void
*/
protected function _prepareArrayRow(DataObject $row)
{
$country = $row->getCountryId();
$options = [];
if ($country) {
$options['option_' . $this->getCountryRenderer()->calcOptionHash($country)] = 'selected="selected"';
$ccTypes = $row->getCcTypes();
foreach ($ccTypes as $cardType) {
$options['option_' . $this->getCcTypesRenderer()->calcOptionHash($cardType)] = 'selected="selected"';
}
}
$row->setData('option_extra_attrs', $options);
}
示例4: _prepareArrayRow
/**
* Prepare existing row data object
*
* @param \Magento\Framework\DataObject $row
* @return void
*/
protected function _prepareArrayRow(\Magento\Framework\DataObject $row)
{
$country = $row->getCountryId();
$options = [];
if ($country) {
$options['option_' . $this->getCountryRenderer()->calcOptionHash($country)] = 'selected="selected"';
$ccTypes = $row->getCcTypes();
if (!is_array($ccTypes)) {
$ccTypes = [$ccTypes];
}
foreach ($ccTypes as $cardType) {
$options['option_' . $this->getCcTypesRenderer()->calcOptionHash($cardType)] = 'selected="selected"';
}
}
$row->setData('option_extra_attrs', $options);
return;
}
示例5: _getBillingAddress
/**
* Get billing address request data
*
* @param \Magento\Framework\DataObject $address
* @return array
* @SuppressWarnings(PHPMD.NPathComplexity)
*/
protected function _getBillingAddress(\Magento\Framework\DataObject $address)
{
$region = $address->getRegionCode() ? $address->getRegionCode() : $address->getRegion();
$request = ['billing_first_name' => $address->getFirstname(), 'billing_last_name' => $address->getLastname(), 'billing_city' => $address->getCity(), 'billing_state' => $region ? $region : $address->getCity(), 'billing_zip' => $address->getPostcode(), 'billing_country' => $address->getCountryId()];
// convert streets to tow lines format
$street = $this->_customerAddress->convertStreetLines($address->getStreet(), 2);
$request['billing_address1'] = isset($street[0]) ? $street[0] : '';
$request['billing_address2'] = isset($street[1]) ? $street[1] : '';
return $request;
}
示例6: _getRates
/**
* Returns tax rates for request - either pereforms SELECT from DB, or returns already cached result
* Notice that productClassId due to optimization can be array of ids
*
* @param \Magento\Framework\DataObject $request
* @return array
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
* @SuppressWarnings(PHPMD.NPathComplexity)
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*/
protected function _getRates($request)
{
// Extract params that influence our SELECT statement and use them to create cache key
$storeId = $this->_storeManager->getStore($request->getStore())->getId();
$customerClassId = $request->getCustomerClassId();
$countryId = $request->getCountryId();
$regionId = $request->getRegionId();
$postcode = $request->getPostcode();
// Process productClassId as it can be array or usual value. Form best key for cache.
$productClassId = $request->getProductClassId();
$ids = is_array($productClassId) ? $productClassId : [$productClassId];
foreach ($ids as $key => $val) {
$ids[$key] = (int) $val;
// Make it integer for equal cache keys even in case of null/false/0 values
}
$ids = array_unique($ids);
sort($ids);
$productClassKey = implode(',', $ids);
// Form cache key and either get data from cache or from DB
$cacheKey = implode('|', [$storeId, $customerClassId, $productClassKey, $countryId, $regionId, $postcode]);
if (!isset($this->_ratesCache[$cacheKey])) {
// Make SELECT and get data
$select = $this->getConnection()->select();
$select->from(['main_table' => $this->getMainTable()], ['tax_calculation_rate_id', 'tax_calculation_rule_id', 'customer_tax_class_id', 'product_tax_class_id'])->where('customer_tax_class_id = ?', (int) $customerClassId);
if ($productClassId) {
$select->where('product_tax_class_id IN (?)', $productClassId);
}
$ifnullTitleValue = $this->getConnection()->getCheckSql('title_table.value IS NULL', 'rate.code', 'title_table.value');
$ruleTableAliasName = $this->getConnection()->quoteIdentifier('rule.tax_calculation_rule_id');
$select->join(['rule' => $this->getTable('tax_calculation_rule')], $ruleTableAliasName . ' = main_table.tax_calculation_rule_id', ['rule.priority', 'rule.position', 'rule.calculate_subtotal'])->join(['rate' => $this->getTable('tax_calculation_rate')], 'rate.tax_calculation_rate_id = main_table.tax_calculation_rate_id', ['value' => 'rate.rate', 'rate.tax_country_id', 'rate.tax_region_id', 'rate.tax_postcode', 'rate.tax_calculation_rate_id', 'rate.code'])->joinLeft(['title_table' => $this->getTable('tax_calculation_rate_title')], "rate.tax_calculation_rate_id = title_table.tax_calculation_rate_id " . "AND title_table.store_id = '{$storeId}'", ['title' => $ifnullTitleValue])->where('rate.tax_country_id = ?', $countryId)->where("rate.tax_region_id IN(?)", [0, (int) $regionId]);
$postcodeIsNumeric = is_numeric($postcode);
$postcodeIsRange = false;
$originalPostcode = null;
if (is_string($postcode) && preg_match('/^(.+)-(.+)$/', $postcode, $matches)) {
if ($countryId == self::USA_COUNTRY_CODE && is_numeric($matches[2]) && strlen($matches[2]) == 4) {
$postcodeIsNumeric = true;
$originalPostcode = $postcode;
$postcode = $matches[1];
} else {
$postcodeIsRange = true;
$zipFrom = $matches[1];
$zipTo = $matches[2];
}
}
if ($postcodeIsNumeric || $postcodeIsRange) {
$selectClone = clone $select;
$selectClone->where('rate.zip_is_range IS NOT NULL');
}
$select->where('rate.zip_is_range IS NULL');
if ($postcode != '*' || $postcodeIsRange) {
$select->where("rate.tax_postcode IS NULL OR rate.tax_postcode IN('*', '', ?)", $postcodeIsRange ? $postcode : $this->_createSearchPostCodeTemplates($postcode, $originalPostcode));
if ($postcodeIsNumeric) {
$selectClone->where('? BETWEEN rate.zip_from AND rate.zip_to', $postcode);
} elseif ($postcodeIsRange) {
$selectClone->where('rate.zip_from >= ?', $zipFrom)->where('rate.zip_to <= ?', $zipTo);
}
}
/**
* @see ZF-7592 issue http://framework.zend.com/issues/browse/ZF-7592
*/
if ($postcodeIsNumeric || $postcodeIsRange) {
$select = $this->getConnection()->select()->union(['(' . $select . ')', '(' . $selectClone . ')']);
}
$select->order('priority ' . \Magento\Framework\DB\Select::SQL_ASC)->order('tax_calculation_rule_id ' . \Magento\Framework\DB\Select::SQL_ASC)->order('tax_country_id ' . \Magento\Framework\DB\Select::SQL_DESC)->order('tax_region_id ' . \Magento\Framework\DB\Select::SQL_DESC)->order('tax_postcode ' . \Magento\Framework\DB\Select::SQL_DESC)->order('value ' . \Magento\Framework\DB\Select::SQL_DESC);
$fetchResult = $this->getConnection()->fetchAll($select);
$filteredRates = [];
if ($fetchResult) {
foreach ($fetchResult as $rate) {
if (!isset($filteredRates[$rate['tax_calculation_rate_id']])) {
$filteredRates[$rate['tax_calculation_rate_id']] = $rate;
}
}
}
$this->_ratesCache[$cacheKey] = array_values($filteredRates);
}
return $this->_ratesCache[$cacheKey];
}
示例7: isAddressTaxable
/**
* Determine whether address is taxable, based on either country or region
*
* @param \Magento\Framework\DataObject $address
* @param $storeId
* @return bool
*/
public function isAddressTaxable(\Magento\Framework\DataObject $address, $storeId)
{
$isTaxable = true;
// Filtering just by country (not region)
if (!$this->getFilterTaxByRegion($storeId)) {
$countryFilters = explode(',', $this->getTaxCalculationCountriesEnabled($storeId));
$countryId = $address->getCountryId();
if (!in_array($countryId, $countryFilters)) {
$isTaxable = false;
}
// Filtering by region within countries
} else {
$regionFilters = explode(',', $this->getRegionFilterList($storeId));
$entityId = $address->getRegionId() ?: $address->getCountryId();
if (!in_array($entityId, $regionFilters)) {
$isTaxable = false;
}
}
return $isTaxable;
}
示例8: setShipping
/**
* @param DataObject $request
* @param DataObject $shipping
*
* @return Object
*/
public function setShipping($request, $shipping)
{
$request->setShiptofirstname($shipping->getFirstname())->setShiptolastname($shipping->getLastname())->setShiptostreet(implode(' ', $shipping->getStreet()))->setShiptocity($shipping->getCity())->setShiptostate($shipping->getRegionCode())->setShiptozip($shipping->getPostcode())->setShiptocountry($shipping->getCountryId());
return $request;
}
示例9: getAppliedRates
/**
* Get information about tax rates applied to request
*
* @param \Magento\Framework\DataObject $request
* @return array
*/
public function getAppliedRates($request)
{
if (!$request->getCountryId() || !$request->getCustomerClassId() || !$request->getProductClassId()) {
return [];
}
$cacheKey = $this->_getRequestCacheKey($request);
if (!isset($this->_rateCalculationProcess[$cacheKey])) {
$this->_rateCalculationProcess[$cacheKey] = $this->_getResource()->getCalculationProcess($request);
}
return $this->_rateCalculationProcess[$cacheKey];
}
示例10: _applyStreetAndRegionWorkarounds
/**
* Adopt specified address object to be compatible with Magento
*
* @param \Magento\Framework\DataObject $address
* @return void
*/
protected function _applyStreetAndRegionWorkarounds(\Magento\Framework\DataObject $address)
{
// merge street addresses into 1
if ($address->hasStreet2()) {
$address->setStreet(implode("\n", [$address->getStreet(), $address->getStreetLine(2)]));
$address->unsStreet2();
}
// attempt to fetch region_id from directory
if ($address->getCountryId() && $address->getRegion()) {
$regions = $this->_countryFactory->create()->loadByCode($address->getCountryId())->getRegionCollection()->addRegionCodeOrNameFilter($address->getRegion())->setPageSize(1);
foreach ($regions as $region) {
$address->setRegionId($region->getId());
$address->setExportedKeys(array_merge($address->getExportedKeys(), ['region_id']));
break;
}
}
}
示例11: collectRatesByAddress
/**
* Collect rates by address
*
* @param \Magento\Framework\DataObject $address
* @param null|bool|array $limitCarrier
* @return $this
*/
public function collectRatesByAddress(\Magento\Framework\DataObject $address, $limitCarrier = null)
{
/** @var $request \Magento\Quote\Model\Quote\Address\RateRequest */
$request = $this->_shipmentRequestFactory->create();
$request->setAllItems($address->getAllItems());
$request->setDestCountryId($address->getCountryId());
$request->setDestRegionId($address->getRegionId());
$request->setDestPostcode($address->getPostcode());
$request->setPackageValue($address->getBaseSubtotal());
$request->setPackageValueWithDiscount($address->getBaseSubtotalWithDiscount());
$request->setPackageWeight($address->getWeight());
$request->setFreeMethodWeight($address->getFreeMethodWeight());
$request->setPackageQty($address->getItemQty());
$request->setStoreId($this->_storeManager->getStore()->getId());
$request->setWebsiteId($this->_storeManager->getStore()->getWebsiteId());
$request->setBaseCurrency($this->_storeManager->getStore()->getBaseCurrency());
$request->setPackageCurrency($this->_storeManager->getStore()->getCurrentCurrency());
$request->setLimitCarrier($limitCarrier);
$request->setBaseSubtotalInclTax($address->getBaseSubtotalInclTax());
return $this->collectRates($request);
}