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é.

Estaremos encantados de escuchar lo que piensas

Deje una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.