На странице оформления заказа Для определенной страны я хочу добавить выпадающий список районов ниже штата. Когда состояние меняется, район должен изменить параметры. Как мне это сделать? Я написал много jquery для него, но есть ли более простой способ?
function populate_district(e, dist){
var elem = e.getAttributeNode("id").value.split("_")[0];
// var elem = e.target.attr("id").split("_")[0];
if(jQuery("#"+elem+"_country").val() == "NP"){
console.log(e.value);
var state = e.value;
// var value = jQuery("#"+elem+"_district").val();
if(dist == undefined){
var value = jQuery('#'+elem+"_district").val();
}else{
var value = dist;
}
if(state){
jQuery.ajax({
type: 'POST',
url: 'get-state-district.php',
// dataType: 'json',
data: {'state_id': state, 'value': value},
success: function(data){
jQuery("#"+elem+"_district").html(data);
}
});
}
}
}
$('#shipping_state').on('change', function(e, dist){
populate_district(e.target, dist);
});
<?php
defined( 'ABSPATH' ) || exit;
require 'woo-district-option.php';
if (! empty($_POST["state_id"])) {
$stateId = $_POST["state_id"];
$stateResult = Woo_District_Option::district_option($stateId);
foreach ($stateResult as $key => $value) {
if($key == $_POST['value']){
echo "<option value='".$key."' selected>".$value."</option>";
}else{
echo "<option value='".$key."'>".$value."</option>";
}
}
die();
}
?>
Также еще один вопрос, в my-account / edit-address / shipping / как woocommerce заполняет такие поля, как Государство Страна?
Я спрашиваю об этом, потому что я использую плагин woocommerce-address-book для сохранения нескольких адресов доставки, и он использует URL-адрес, такой как my-account / edit-address / shipping /? Address-book = shipping2 и мой код не заполняется этим кодом, потому что я не знаю, какой должен быть район. Я даже не понимаю, как заполняются другие поля. Как WordPress / WooCommerce обрабатывает URL-адреса, как это?
Спасибо за вашу помощь.