Está en la página 1de 4

<?

php

/*
Plugin Name: Regiones de Chile para WooCommerce
Plugin URI: https://www.onesla.com
Description: Con este plugin o complemento podrás utilizar las Regiones de Chile
para mejorar la experiencia de envíos.
Version: 0.4
Author: Melvin Ramos <info@conchalevale.cl>, Plugin Tuneado y agregadas las comunas
por Michael Venegas <contacto@onesla.com>
Author URI: https://www.onesla.com
Contributors: melvisnap, michalexvr
License: GPLv3
Requires at least: 4.0 +
Tested up to: 5.2.1
WC requires at least: 3.0.x
WC tested up to: 3.6.4
Nueva versión, incluye las comunas de Chile.
*/
/*
* Copyright 2018 Cónchale vale <info@conchalevale.cl>
* Copyleft 2020 Onesla SPA <contacto@onesla.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*/

function rdcw_regiones_de_chile($states) {
$states['CL'] = array(
'Metropolitana de Santiago' => 'Metropolitana de Santiago',
);

return $states;
}

function ciudades_chilenas( $fields ) {


$city_args = wp_parse_args( array(
'type' => 'select',
'options' => array(
"Cerrillos"=>"Cerrillos",
"Cerro Navia"=>"Cerro Navia",
"Conchali"=>"Conchali",
"El Bosque"=>"El Bosque",
"Estacion Central"=>"Estacion Central",
"Huechuraba"=>"Huechuraba",
"Independencia"=>"Independencia",
"La Cisterna"=>"La Cisterna",
"La Granja"=>"La Granja",
"La Florida"=>"La Florida",
"La Pintana"=>"La Pintana",
"La Reina"=>"La Reina",
"Las Condes"=>"Las Condes",
"Lo Barnechea"=>"Lo Barnechea",
"Lo Espejo"=>"Lo Espejo",
"Lo Prado"=>"Lo Prado",
"Macul"=>"Macul",
"Maipu"=>"Maipu",
"Ñuñoa"=>"Ñuñoa",
"Puente Alto"=>"Puente Alto",
"Pedro Aguirre Cerda"=>"Pedro Aguirre Cerda",
"Peñalolen"=>"Peñalolen",
"Providencia"=>"Providencia",
"Pudahuel"=>"Pudahuel",
/*"Quilicura"=>"Quilicura",*/
"Quinta Normal"=>"Quinta Normal",
"Recoleta"=>"Recoleta",
"Renca"=>"Renca",
"San Bernardo"=>"San Bernardo",
"San Miguel"=>"San Miguel",
"San Joaquin"=>"San Joaquin",
"San Ramon"=>"San Ramon",
"Santiago"=>"Santiago",
"Vitacura"=>"Vitacura",
),
'input_class' => array(
'wc-enhanced-select',
)
), $fields['shipping']['shipping_city'] );
$fields['shipping']['shipping_city'] = $city_args;
$fields['billing']['billing_city'] = $city_args;
$fields['billing']['billing_city']['class'][] = 'mmcm';
wc_enqueue_js( "
jQuery( ':input.wc-enhanced-
select' ).filter( ':not(.enhanced)' ).each( function() {
var select2_args = { minimumResultsForSearch: 5 };
jQuery( this ).select2( select2_args ).addClass( 'enhanced' );
});" );

wc_enqueue_js( "
jQuery(document).ready(function(){
let ciudades = [
{ciudad:'Cerrillos',region:'Metropolitana de Santiago'},
{ciudad:'Cerro Navia',region:'Metropolitana de Santiago'},
{ciudad:'Conchali',region:'Metropolitana de Santiago'},
{ciudad:'El Bosque',region:'Metropolitana de Santiago'},
{ciudad:'Estacion Central',region:'Metropolitana de Santiago'},
{ciudad:'Huechuraba',region:'Metropolitana de Santiago'},
{ciudad:'Independencia',region:'Metropolitana de Santiago'},
{ciudad:'La Cisterna',region:'Metropolitana de Santiago'},
{ciudad:'La Granja',region:'Metropolitana de Santiago'},
{ciudad:'La Florida',region:'Metropolitana de Santiago'},
{ciudad:'La Pintana',region:'Metropolitana de Santiago'},
{ciudad:'La Reina',region:'Metropolitana de Santiago'},
{ciudad:'Las Condes',region:'Metropolitana de Santiago'},
{ciudad:'Lo Barnechea',region:'Metropolitana de Santiago'},
{ciudad:'Lo Espejo',region:'Metropolitana de Santiago'},
{ciudad:'Lo Prado',region:'Metropolitana de Santiago'},
{ciudad:'Macul',region:'Metropolitana de Santiago'},
{ciudad:'Maipu',region:'Metropolitana de Santiago'},
{ciudad:'Ñuñoa',region:'Metropolitana de Santiago'},
{ciudad:'Pedro Aguirre Cerda',region:'Metropolitana de Santiago'},
{ciudad:'Peñalolen',region:'Metropolitana de Santiago'},
{ciudad:'Providencia',region:'Metropolitana de Santiago'},
{ciudad:'Pudahuel',region:'Metropolitana de Santiago'},
{ciudad:'Puente Alto',region:'Metropolitana de Santiago'},
{ciudad:'Quinta Normal',region:'Metropolitana de Santiago'},
{ciudad:'Recoleta',region:'Metropolitana de Santiago'},
{ciudad:'Renca',region:'Metropolitana de Santiago'},
{ciudad:'San Bernardo',region:'Metropolitana de Santiago'},
{ciudad:'San Miguel',region:'Metropolitana de Santiago'},
{ciudad:'San Joaquin',region:'Metropolitana de Santiago'},
{ciudad:'San Ramon',region:'Metropolitana de Santiago'},
{ciudad:'Santiago',region:'Metropolitana de Santiago'},
{ciudad:'Vitacura',region:'Metropolitana de Santiago'}
];

jQuery('.mmcm').change(function(){
for (var i = 0; i < ciudades.length; i++) {
if (ciudades[i].ciudad == jQuery('#select2-billing_city-
container').attr('title')) {
jQuery('.mmrm').val(ciudades[i].region).prop('selected', true);

jQuery('#billing_state').val(ciudades[i].region).prop('selected', true);
jQuery('#select2-billing_state-
container').attr('title',ciudades[i].region);
jQuery('#select2-billing_state-
container').empty().append(ciudades[i].region);
}
if (ciudades[i].ciudad == jQuery('#select2-shipping_city-
container').attr('title')) {
jQuery('.mmrms').val(ciudades[i].region).prop('selected',
true);

jQuery('#shipping_state').val(ciudades[i].region).prop('selected', true);
jQuery('#select2-shipping_state-
container').attr('title',ciudades[i].region);
jQuery('#select2-shipping_state-
container').empty().append(ciudades[i].region);
}
}
});
jQuery('.mmrm').change(function(){
jQuery('#billing_city').empty();
for (var i = 0; i < ciudades.length; i++) {
if (ciudades[i].region == jQuery('#select2-billing_state-
container').attr('title')) {
jQuery('#billing_city').append('<option value=\"'+
ciudades[i].ciudad +'\"> ' + ciudades[i].ciudad + ' </option>');
}
}
});
jQuery('.mmrms').change(function(){
jQuery('#shipping_city').empty();
for (var i = 0; i < ciudades.length; i++) {
if (ciudades[i].region == jQuery('#select2-shipping_state-
container').attr('title')) {
jQuery('#shipping_city').append('<option value=\"'+
ciudades[i].ciudad +'\"> ' + ciudades[i].ciudad + ' </option>');
}
}
});
});
");
return $fields;
}

function perfil_ciudades_chilenas ( $fields ) {


$city_args = wp_parse_args( ciudades_chilenas($fields), $fields['city'] );
$fields['city'] = $city_args;
$fields['city']['class'][] = 'mmcm';
wc_enqueue_js( "
jQuery( ':input.wc-enhanced-
select' ).filter( ':not(.enhanced)' ).each( function() {
var select2_args = { minimumResultsForSearch: 5 };
jQuery( this ).select2( select2_args ).addClass( 'enhanced' );
});" );
return $fields;
}

function rdcw_change_checkout_fields( $fields ) {

$fields['billing']['billing_state']['placeholder'] = 'Seleccione una Región';


$fields['billing']['billing_state']['label'] = 'Región';
$fields['billing']['billing_state']['class'][] = 'mmrm';

$fields['shipping']['shipping_state']['placeholder'] = 'Seleccione una


Región';
$fields['shipping']['shipping_state']['label'] = 'Región';
$fields['shipping']['shipping_state']['class'][] = 'mmrms';

unset($fields['billing']['billing_postcode']);
unset($fields['shipping']['shipping_postcode']);

return $fields;
}

add_filter('woocommerce_checkout_fields' , 'rdcw_change_checkout_fields');
add_filter('woocommerce_states', 'rdcw_regiones_de_chile');
add_filter('woocommerce_checkout_fields', 'ciudades_chilenas');
add_filter('woocommerce_default_address_fields', 'perfil_ciudades_chilenas');

?>

También podría gustarte