Loading the content... Loading depends on your connection speed!

Magento: Eliminar ciertas provincias (Las Palmas, Santa Cruz de Tenerife, etc…) en el proceso de pago o registro

Esto se podría hacer simplemente eliminando los ID’s de las provincias de la base de datos en la tabla  “directory_country_region”, pero esto no es nada recomendable.

Es mucho mejor realizar los siguientes cambios en el código.

Paso 1:

Copie el archivo desde: app/code/core/Mage/Directory/Helper/Data.php
a: app/code/local/Mage/Directory/Helper/Data.php

Paso 2:

Reemplace el método _getRegions ($ storeId) de la clase Mage_Directory_Helper_Data.

Vaya a la línea número 184: protect function _getRegions ($ storeID)
Agregue este código después del final de $ regions en la línea 200

$excludeRegions = array('Las Palmas','Santa Cruz de Tenerife','Baleares','Ceuta','Melilla');
      foreach ($collection as $region) {
          if (!$region->getRegionId()) {
              continue;
          }

 

Paso 3:

Asigne los códigos de región que desea eliminar a una matriz, es decir, la variable $ excludeRegions.

Agregue este código después del paso 2.

//BOF Custom Logic Here
      $regionCode = $region->getCode();
      if (in_array($regionCode, $excludeRegions)) {
          continue;
      }

 

Este es el código final:

protected function _getRegions($storeId)
{
    $countryIds = array();

    $countryCollection = $this->getCountryCollection()->loadByStore($storeId);
    foreach ($countryCollection as $country) {
        $countryIds[] = $country->getCountryId();
    }

    /** @var $regionModel Mage_Directory_Model_Region */
    $regionModel = $this->_factory->getModel('directory/region');
    /** @var $collection Mage_Directory_Model_Resource_Region_Collection */
    $collection = $regionModel->getResourceCollection()
        ->addCountryFilter($countryIds)
        ->load();

    $regions = array(
        'config' => array(
            'show_all_regions' => $this->getShowNonRequiredState(),
            'regions_required' => $this->getCountriesWithStatesRequired()
        )
    );

    $excludeRegions = array('Las Palmas','Santa Cruz de Tenerife','Baleares','Ceuta','Melilla');
    foreach ($collection as $region) {
        if (!$region->getRegionId()) {
            continue;
        }

    //BOF Custom Logic Here
    $regionCode = $region->getCode();
    if (in_array($regionCode, $excludeRegions)) {
        continue;
    }

    //EOF Custom Logic here
    $regions[$region->getCountryId()][$region->getRegionId()] = array(
            'code' => $region->getCode(),
            'name' => $this->__($region->getName())
        );
    }
    return $regions;
}

 

Paso 4:

Inicie sesión en su admin de Magento y borre todo el caché.

Dejar un Comentario

eCommerce: Shopify, Magento, Prestashop, Aplicaciones Web… | Marketing online: SEO, SEM, Redes sociales, Emailing…