本文整理汇总了PHP中Magento\Tax\Helper\Data::getPostCodeSubStringLength方法的典型用法代码示例。如果您正苦于以下问题:PHP Data::getPostCodeSubStringLength方法的具体用法?PHP Data::getPostCodeSubStringLength怎么用?PHP Data::getPostCodeSubStringLength使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Magento\Tax\Helper\Data
的用法示例。
在下文中一共展示了Data::getPostCodeSubStringLength方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _createSearchPostCodeTemplates
/**
* Create search templates for postcode
*
* @param string $postcode
* @return string[]
*/
protected function _createSearchPostCodeTemplates($postcode)
{
$len = $this->_taxData->getPostCodeSubStringLength();
$strlen = strlen($postcode);
if ($strlen > $len) {
$postcode = substr($postcode, 0, $len);
$strlen = $len;
}
$strArr = array((string) $postcode, $postcode . '*');
if ($strlen > 1) {
for ($i = 1; $i < $strlen; $i++) {
$strArr[] = sprintf('%s*', substr($postcode, 0, -$i));
}
}
return $strArr;
}
示例2: _createSearchPostCodeTemplates
/**
* Create search templates for postcode
*
* @param string $postcode
* @param string|null $exactPostcode
* @return string[]
*/
protected function _createSearchPostCodeTemplates($postcode, $exactPostcode = null)
{
// as needed, reduce the postcode to the correct length
$len = $this->_taxData->getPostCodeSubStringLength();
$postcode = substr($postcode, 0, $len);
// begin creating the search template array
$strArr = [$postcode, $postcode . '*'];
// if supplied, use the exact postcode as the basis for the search templates
if ($exactPostcode) {
$postcode = substr($exactPostcode, 0, $len);
$strArr[] = $postcode;
}
// finish building out the search template array
$strlen = strlen($postcode);
for ($i = 1; $i < $strlen; $i++) {
$strArr[] = sprintf('%s*', substr($postcode, 0, -$i));
}
return $strArr;
}
示例3: _prepareForm
/**
* @return $this
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
* @SuppressWarnings(PHPMD.NPathComplexity)
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*/
protected function _prepareForm()
{
$taxRateId = $this->_coreRegistry->registry(RegistryConstants::CURRENT_TAX_RATE_ID);
try {
if ($taxRateId) {
$taxRateDataObject = $this->_taxRateRepository->get($taxRateId);
}
} catch (NoSuchEntityException $e) {
/* tax rate not found */
}
$sessionFormValues = (array) $this->_coreRegistry->registry(RegistryConstants::CURRENT_TAX_RATE_FORM_DATA);
$formData = isset($taxRateDataObject) ? $this->extractTaxRateData($taxRateDataObject) : [];
$formData = array_merge($formData, $sessionFormValues);
if (isset($formData['zip_is_range']) && $formData['zip_is_range'] && !isset($formData['tax_postcode'])) {
$formData['tax_postcode'] = $formData['zip_from'] . '-' . $formData['zip_to'];
}
/** @var \Magento\Framework\Data\Form $form */
$form = $this->_formFactory->create();
$countries = $this->_country->toOptionArray(false, 'US');
unset($countries[0]);
if (!isset($formData['tax_country_id'])) {
$formData['tax_country_id'] = $this->_scopeConfig->getValue(\Magento\Tax\Model\Config::CONFIG_XML_PATH_DEFAULT_COUNTRY, \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
}
if (!isset($formData['tax_region_id'])) {
$formData['tax_region_id'] = $this->_scopeConfig->getValue(\Magento\Tax\Model\Config::CONFIG_XML_PATH_DEFAULT_REGION, \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
}
$regionCollection = $this->_regionFactory->create()->getCollection()->addCountryFilter($formData['tax_country_id']);
$regions = $regionCollection->toOptionArray();
if ($regions) {
$regions[0]['label'] = '*';
} else {
$regions = [['value' => '', 'label' => '*']];
}
$legend = $this->getShowLegend() ? __('Tax Rate Information') : '';
$fieldset = $form->addFieldset('base_fieldset', ['legend' => $legend, 'class' => 'form-inline']);
if (isset($formData['tax_calculation_rate_id']) && $formData['tax_calculation_rate_id'] > 0) {
$fieldset->addField('tax_calculation_rate_id', 'hidden', ['name' => 'tax_calculation_rate_id', 'value' => $formData['tax_calculation_rate_id']]);
}
$fieldset->addField('code', 'text', ['name' => 'code', 'label' => __('Tax Identifier'), 'title' => __('Tax Identifier'), 'class' => 'required-entry', 'required' => true]);
$fieldset->addField('zip_is_range', 'checkbox', ['name' => 'zip_is_range', 'label' => __('Zip/Post is Range'), 'value' => '1']);
if (!isset($formData['tax_postcode'])) {
$formData['tax_postcode'] = $this->_scopeConfig->getValue(\Magento\Tax\Model\Config::CONFIG_XML_PATH_DEFAULT_POSTCODE, \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
}
$fieldset->addField('tax_postcode', 'text', ['name' => 'tax_postcode', 'label' => __('Zip/Post Code'), 'note' => __("'*' - matches any; 'xyz*' - matches any that begins on 'xyz' and are not longer than %1.", $this->_taxData->getPostCodeSubStringLength())]);
$fieldset->addField('zip_from', 'text', ['name' => 'zip_from', 'label' => __('Range From'), 'required' => true, 'maxlength' => 9, 'class' => 'validate-digits', 'css_class' => 'hidden']);
$fieldset->addField('zip_to', 'text', ['name' => 'zip_to', 'label' => __('Range To'), 'required' => true, 'maxlength' => 9, 'class' => 'validate-digits', 'css_class' => 'hidden']);
$fieldset->addField('tax_region_id', 'select', ['name' => 'tax_region_id', 'label' => __('State'), 'values' => $regions]);
$fieldset->addField('tax_country_id', 'select', ['name' => 'tax_country_id', 'label' => __('Country'), 'required' => true, 'values' => $countries]);
$fieldset->addField('rate', 'text', ['name' => 'rate', 'label' => __('Rate Percent'), 'title' => __('Rate Percent'), 'required' => true, 'class' => 'validate-not-negative-number']);
$form->setAction($this->getUrl('tax/rate/save'));
$form->setUseContainer(true);
$form->setId(self::FORM_ELEMENT_ID);
$form->setMethod('post');
if (!$this->_storeManager->hasSingleStore()) {
$form->addElement($this->_fieldsetFactory->create()->setLegend(__('Tax Titles')));
}
if (isset($formData['zip_is_range']) && $formData['zip_is_range']) {
list($formData['zip_from'], $formData['zip_to']) = explode('-', $formData['tax_postcode']);
}
$form->setValues($formData);
$this->setForm($form);
$this->setChild('form_after', $this->getLayout()->createBlock('Magento\\Framework\\View\\Element\\Template')->setTemplate('Magento_Tax::rate/js.phtml'));
return parent::_prepareForm();
}