add_filter('woocommerce_checkout_fields', function ($fields) { $fields['billing']['billing_city'] = array( 'type' => 'text', 'label' => __('Villa / Apartment / Hotel'), 'placeholder' => __('Search for your villa or apartment name and the form will autocomplete the address.'), 'required' => true, 'class' => array('form-row-wide'), 'priority' => 22, ); $fields['billing']['billing_lat'] = array( 'type' => 'hidden', 'required' => false, 'priority' => 23, ); $fields['billing']['billing_lng'] = array( 'type' => 'hidden', 'required' => false, 'priority' => 24, ); return $fields; }); add_action('woocommerce_checkout_create_order', function ($order) { if (!empty($_POST['billing_lat'])) { $order->update_meta_data('_billing_lat', sanitize_text_field($_POST['billing_lat'])); } if (!empty($_POST['billing_lng'])) { $order->update_meta_data('_billing_lng', sanitize_text_field($_POST['billing_lng'])); } }, 10, 2); add_action('wp_enqueue_scripts', function () { if (!is_checkout()) return; wp_enqueue_script( 'google-maps-places', 'https://maps.googleapis.com/maps/api/js?key=AIzaSyCZEQqeZrm7s18flLdPiaavuLFQzwsDdO8&libraries=places', array(), null, true ); }); add_action('wp_footer', function () { if (!is_checkout()) return; echo ''; });