将城市名称字段添加到送货区域 - Woocommerce

时间:2018-04-10 05:29:53

标签: php wordpress woocommerce shipping

我正在使用Departamentos y Ciudades de Colombia para Woocommerce插件转换城市/城镇的输入字段,以选择结帐部分中的字段,并在插件文件中提供预先填充的城市/城镇列表。
我想在表单中添加相同的城市选择字段,以便在Woocommerce中创建发货区域。虽然Woocommerce支持添加大陆/国家/州/邮政编码,但不支持在运输区添加城市名称。我可以使用邮政编码,但这不起作用,因为有些国家不支持邮政编码系统,或者它们在单个邮政编码上覆盖更大的区域。

有人可以指导我在哪些类或Woocommerce核心文件需要扩展,以便它支持运输区域的城市名称。我想根据城市名称创建运输区域。我认为WC_Shipping_Zone的方法需要被覆盖。请帮助我了解Woocommerce的actionsfilters对解决方案感兴趣。

3 个答案:

答案 0 :(得分:1)

我是插件的创建者,请参见github中的代码参考 https://github.com/saulmoralespa/departamentos-y-ciudades-de-colombia-para-woocommerce/blob/master/includes/filter-by-cities.php

我按城市添加了过滤器,方法发送方式可选

答案 1 :(得分:0)

尝试此代码:

const

答案 2 :(得分:-1)

我遇到了同样的问题,但是我发现我可以插入一个php文件来解决这个问题。

  1. 转到:yourwebsite / wp-content / plugins / woocommerce / i18n / states
  2. 您将看到插入国家的php文件
  3. 如果您打开一个,您将看到代码格式

以下是阿根廷的php代码

<?php
/**
 * Argentinian provinces
 *
 * @package WooCommerce/i18n
 * @version 2.4.0
 */

global $states;

defined( 'ABSPATH' ) || exit;

$states['AR'] = array(
	'C' => __( 'Ciudad Aut&oacute;noma de Buenos Aires', 'woocommerce' ),
	'B' => __( 'Buenos Aires', 'woocommerce' ),
	'K' => __( 'Catamarca', 'woocommerce' ),
	'H' => __( 'Chaco', 'woocommerce' ),
	'U' => __( 'Chubut', 'woocommerce' ),
	'X' => __( 'C&oacute;rdoba', 'woocommerce' ),
	'W' => __( 'Corrientes', 'woocommerce' ),
	'E' => __( 'Entre R&iacute;os', 'woocommerce' ),
	'P' => __( 'Formosa', 'woocommerce' ),
	'Y' => __( 'Jujuy', 'woocommerce' ),
	'L' => __( 'La Pampa', 'woocommerce' ),
	'F' => __( 'La Rioja', 'woocommerce' ),
	'M' => __( 'Mendoza', 'woocommerce' ),
	'N' => __( 'Misiones', 'woocommerce' ),
	'Q' => __( 'Neuqu&eacute;n', 'woocommerce' ),
	'R' => __( 'R&iacute;o Negro', 'woocommerce' ),
	'A' => __( 'Salta', 'woocommerce' ),
	'J' => __( 'San Juan', 'woocommerce' ),
	'D' => __( 'San Luis', 'woocommerce' ),
	'Z' => __( 'Santa Cruz', 'woocommerce' ),
	'S' => __( 'Santa Fe', 'woocommerce' ),
	'G' => __( 'Santiago del Estero', 'woocommerce' ),
	'V' => __( 'Tierra del Fuego', 'woocommerce' ),
	'T' => __( 'Tucum&aacute;n', 'woocommerce' ),
);

我将该代码格式复制到一个新文件中,并用我所在国家/地区的信息替换了各州,从而能够为我所在国家/地区的每个州创建运输区域。

这是我的php代码

<?php
/**
 * Belizean Districts
 *
 * @package WooCommerce/i18n
 * @version 2.4.0
 */

global $states;

defined( 'ABSPATH' ) || exit;

$states['BZ'] = array(
	'C' => __( 'Corozal', 'woocommerce' ),
	'B' => __( 'Orange Walk', 'woocommerce' ),
	'K' => __( 'Belize', 'woocommerce' ),
	'H' => __( 'Cayo', 'woocommerce' ),
	'U' => __( 'Stann Creek', 'woocommerce' ),
	'X' => __( 'Toledo', 'woocommerce' ),
	'W' => __( 'Caye Caulker', 'woocommerce' ),
	'E' => __( 'San Pedro', 'woocommerce' ),
	
);