В плагине мы не будет это реализовывать потому что это усложнит логику работы плагина. Но я подготовил сниппет, который вы можете добавить в functions.php
вашей темы, чтобы реализовать такую связь. В случае, если поля города и аддресса доставки не заполнены, то мы пробуем подставить данные из нашего плагина НП:
add_filter( 'woocommerce_get_order_address', 'np_woocommerce_get_order_address', 10, 3 );
function np_woocommerce_get_order_address( $address, $type, $order ) {
if ( $type !== 'shipping' ) {
return $address;
}
if ( ! empty( $address['city'] ) || ! empty( $address['address_1'] ) ) {
return $address;
}
$shipping_methods = $order->get_shipping_methods();
$shipping_method = array_shift( $shipping_methods );
if ( 'shipping_nova_poshta_for_woocommerce' !== $shipping_method->get_method_id() ) {
return $address;
}
$city_id = $shipping_method->get_meta( 'city_id' );
$warehouse_id = $shipping_method->get_meta( 'warehouse_id' );
if ( empty( $city_id ) || empty( $warehouse_id ) ) {
return $address;
}
$db = nova_poshta()->make( 'DB' );
$address['city'] = $db->city( $city_id );
$address['address_1'] = $db->warehouse( $warehouse_id );
$order->set_shipping_city( $address['city'] );
$order->set_shipping_address_1( $address['address_1'] );
return $address;
}