Plugin Directory

Changeset 3474371


Ignore:
Timestamp:
03/04/2026 09:40:46 AM (5 weeks ago)
Author:
fandevelop
Message:

Ajout recherche par geolocalisation dynamique

Location:
fand-pickup-points-ultimate-edition-for-wcfm/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • fand-pickup-points-ultimate-edition-for-wcfm/trunk/Classes/Controllers/ShortcodesController.php

    r3472086 r3474371  
    1717            'fandpipo_search'   => isset($_GET['fandpipo_pickup_search']) ? sanitize_text_field(wp_unslash($_GET['fandpipo_pickup_search'])) : '',
    1818            'radius_lat' => isset($_GET['wcfmmp_radius_lat']) ? (float) sanitize_text_field(wp_unslash($_GET['wcfmmp_radius_lat'])) : '',
    19 'radius_lng' => isset($_GET['wcfmmp_radius_lng']) ? (float) sanitize_text_field(wp_unslash($_GET['wcfmmp_radius_lng'])) : '',
    20             'radius_range'      => isset($_GET['wcfmmp_radius_range']) ? intval(wp_unslash($_GET['wcfmmp_radius_range'])) : 50,
     19            'radius_lng' => isset($_GET['wcfmmp_radius_lng']) ? (float) sanitize_text_field(wp_unslash($_GET['wcfmmp_radius_lng'])) : '',
     20            'radius_range'      => isset($_GET['wcfmmp_radius_range']) ? intval(wp_unslash($_GET['wcfmmp_radius_range'])) : 5,
    2121            'fandpipo_category' => isset($_GET['fandpipo_category']) ? sanitize_text_field(wp_unslash($_GET['fandpipo_category'])) : '',
    2222        ];
  • fand-pickup-points-ultimate-edition-for-wcfm/trunk/README.txt

    r3472086 r3474371  
    9090== Changelog ==
    9191
     92= 1.0.2 =
     93* Added search by geolocation dynamique
     94
    9295= 1.0.1 =
    9396* Added search by geolocation
  • fand-pickup-points-ultimate-edition-for-wcfm/trunk/assets/js/pickup-map-script.js

    r3472146 r3474371  
    179179    map = L.map('pickup-map').setView([startLat, startLng], startZoom);
    180180
     181
     182        // --- MISE À JOUR DE L'ADRESSE AU DÉPLACEMENT ---
     183    let moveTimer;
     184    map.on('moveend', function() {
     185        clearTimeout(moveTimer);
     186
     187        moveTimer = setTimeout(function() {
     188            const center = map.getCenter();
     189            const lat = center.lat;
     190            const lng = center.lng;
     191
     192            // Mise à jour des champs cachés de coordonnées
     193            const latInp = document.getElementById("wcfmmp_radius_lat");
     194            const lngInp = document.getElementById("wcfmmp_radius_lng");
     195            if (latInp) latInp.value = lat;
     196            if (lngInp) lngInp.value = lng;
     197
     198            console.log("Recherche d'adresse pour :", lat, lng);
     199
     200            // Appel API Nominatim avec un User-Agent (requis par leur charte)
     201            fetch(`https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=${lat}&lon=${lng}`, {
     202                headers: {
     203                    'Accept': 'application/json',
     204                    'Content-Type': 'application/json'
     205                }
     206            })
     207            .then(response => {
     208                if (!response.ok) throw new Error('Erreur réseau');
     209                return response.json();
     210            })
     211            .then(data => {
     212                const addressInput = document.getElementById("wcfmmp_radius_addr");
     213                if (addressInput && data.display_name) {
     214                    // On prend l'adresse courte (rue, ville)
     215                    const addr = data.address;
     216                    const shortLabel = [addr.road, addr.city || addr.town || addr.village, addr.postcode]
     217                        .filter(Boolean) // Enlève les éléments vides
     218                        .join(', ');
     219
     220                    addressInput.value = shortLabel || data.display_name;
     221                    console.log("Adresse trouvée :", addressInput.value);
     222                   
     223                    // On montre la croix d'effacement
     224                    const clearBtn = document.getElementById("wcfm_radius_search_clear");
     225                    if (clearBtn) clearBtn.style.display = 'block';
     226                }
     227            })
     228            .catch(err => {
     229                console.error("Erreur de géocodage inverse :", err);
     230            });
     231               
     232        }, 1000); // 1 seconde de pause
     233    });
     234
    181235    L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
    182236        attribution: '© OpenStreetMap'
     
    328382        const rLat = parseFloat(urlParams.get('wcfmmp_radius_lat'));
    329383        const rLng = parseFloat(urlParams.get('wcfmmp_radius_lng'));
    330         const rRange = parseInt(urlParams.get('wcfmmp_radius_range')) || 50;
     384        const rRange = parseInt(urlParams.get('wcfmmp_radius_range')) || 5; // Rayon en Km, par défaut 5 Km
    331385
    332386        // Calcul du zoom approximatif pour Leaflet selon le rayon (Km)
     
    348402
    349403        // OPTIONNEL : Dessiner le cercle bleu du rayon sur la carte
    350         if (rRange < 1) {
     404        if (rRange > 1) {
    351405            searchCircle = L.circle([rLat, rLng], {
    352406                color: '#0073aa',
  • fand-pickup-points-ultimate-edition-for-wcfm/trunk/fand-pickup-points-ultimate-edition-for-wcfm.php

    r3472086 r3474371  
    33 * Plugin Name: Fand Pickup Points : Ultimate Edition for WCFM
    44 * Description: Gestion avancée des points de retrait pour WCFM Marketplace. Développé par Fan-develop.
    5  * Version:            1.0.1
     5 * Version:            1.0.2
    66 * Requires at least:  6.9
    77 * Requires PHP:       8.2
     
    3838    add_filter('doing_it_wrong_trigger_error', '__return_false');
    3939
    40     define('FANDPIPO_VERSION', '1.0.1');
     40    define('FANDPIPO_VERSION', '1.0.2');
    4141    define('FANDPIPO_MAIN_FILE', __FILE__);
    4242    define('FANDPIPO_PLUGIN_URL', plugin_dir_url(__FILE__));
  • fand-pickup-points-ultimate-edition-for-wcfm/trunk/plugin.php

    r3465000 r3474371  
    7878        // 2. Récupération de la valeur (On force une valeur par défaut si vide)
    7979        $val = get_option('fandpipo_liste_categories_boutique', 'Alimentation, Évènementiel, Foodtruck');
    80         ?>
    81         <input type="text" name="fandpipo_liste_categories_boutique" value="<?php echo esc_attr($val); ?>" class="regular-text" />
    82        
     80        ?>     
    8381
    8482        <div class="wrap">
  • fand-pickup-points-ultimate-edition-for-wcfm/trunk/views/fandpipo-pickup-list.php

    r3472086 r3474371  
    1717$fandpipo_current_lng  = isset($_GET['wcfmmp_radius_lng']) ? sanitize_text_field(wp_unslash($_GET['wcfmmp_radius_lng'])) : '';
    1818$fandpipo_current_addr = isset($_GET['wcfmmp_radius_addr']) ? sanitize_text_field(wp_unslash($_GET['wcfmmp_radius_addr'])) : '';
    19 $fandpipo_current_range = isset($_GET['wcfmmp_radius_range']) ? intval(wp_unslash($_GET['wcfmmp_radius_range'])) : 50;?>
     19$fandpipo_current_range = isset($_GET['wcfmmp_radius_range']) ? intval(wp_unslash($_GET['wcfmmp_radius_range'])) : 5;?>
    2020
    2121<div id="wcfmmp-stores-wrap-holder" class="rgt right_side right_side_full">
  • fand-pickup-points-ultimate-edition-for-wcfm/trunk/views/fandpipo-pickup-map.php

    r3472086 r3474371  
    1818$fandpipo_search_lat   = isset($_GET['wcfmmp_radius_lat']) ? (float) sanitize_text_field(wp_unslash($_GET['wcfmmp_radius_lat'])) : 0;
    1919$fandpipo_search_lng   = isset($_GET['wcfmmp_radius_lng']) ? (float) sanitize_text_field(wp_unslash($_GET['wcfmmp_radius_lng'])) : 0;
    20 $fandpipo_search_range = isset($_GET['wcfmmp_radius_range']) ? intval(sanitize_text_field(wp_unslash($_GET['wcfmmp_radius_range']))) : 50;
     20$fandpipo_search_range = isset($_GET['wcfmmp_radius_range']) ? intval(sanitize_text_field(wp_unslash($_GET['wcfmmp_radius_range']))) : 5;
    2121$fandpipo_current_range = $fandpipo_search_range;
    2222
     
    122122            <input class="search-input wcfmmp-radius-addr" type="text" size="9" autocomplete="off" autocapitalize="off" placeholder="Rechercher une adresse..." role="search" id="wcfmmp_radius_addr" name="wcfmmp_radius_addr" style="display: block; float: none;" value="<?php echo isset($_GET['wcfmmp_radius_addr']) ? esc_attr(sanitize_text_field(wp_unslash($_GET['wcfmmp_radius_addr']))) : ''; ?>">
    123123            <ul class="search-tooltip" style="display: none;"></ul>
    124             <a class="search-cancel" id="wcfm_radius_search_clear" href="#" title="Cancel" style="display: none;">
    125             <span>⊗</span>
    126124            </a>
    127125            <a class="search-button" href="#" title="Search..."></a>
Note: See TracChangeset for help on using the changeset viewer.