Accueil Forums Support communautaire WooCommerce Téléchargement de fichiers spécifiques par clients

3 sujets de 21 à 23 (sur un total de 23)
  • Auteur
    Messages
  • #46431
    Mathieu
    Participant
    Points: 1,311 pts
    Membre 2 étoiles

    Je viens de penser à une autre idée si vous utilisez l’extension ACF.
    D’abord ajoutez un champ qui s’appelle par exemple “client” aux objets “dlm_download” pour associer un utilisateur à chaque fichier.

    Ensuite vous pouvez oublier le code que je vous avais donné avec le système de clé et mettre cela à la place :

    add_filter("dlm_can_download", function ($can_download, $downloadManager) {
        
        $idClient = (int) get_post_meta($downloadManager->id, "client", TRUE);
        
        if (    $can_download
            &&  (get_current_user_id() !== $idClient)
        ) {
            $can_download = FALSE;
        }
        
        
        return $can_download;
        
    }, 10, 2);

    Cela protège le téléchargement en vérifiant l’utilisateur connecté.

    Et pour finir vous pouvez retrouver les fichiers associés à l’utilisateur connecté, comme cela :

    $fichiers = get_posts([
        "nopaging" => TRUE,
        "post_type" => "dlm_download",
        "meta_key" => "client",
        "meta_value" => get_current_user_id(),
    ]);

    Développeur PHP et WordPress En Alsace dans l'annuaire des prestataires WordPress et WooCommerce
    Création d'extensions pour WordPress et WooCommerce - Personnalisation d'extensions existantes
    🔶 Si vous appréciez mon aide, vous pouvez me faire un don de n'importe quel montant en cliquant ici.

    #46451
    mikosworld
    Participant
    Points: 66 pts
    Membre 2 étoiles

    J’ai bien changé votre code dans mon fichier functions.php et dans mon fichier downloads.php
    Donc, dans le téléchargement j’ai mis l’ID du client, et j’ai ça (extrait) :

    https://pastebin.com/dgaCYhgm

    Problème et que quand je survole l’icône de téléchargement le lien est faux et finis par un “Array”… !???

    PS: C’est galère ici, pour copier/coller un code PHP, ça me vire tout 🙁 donc je fais un lien vers Pastbin

    Cordialement,
    Nico.

    #46474
    Mathieu
    Participant
    Points: 1,311 pts
    Membre 2 étoiles

    $fichiers contient la liste de tous les fichiers associés au client.
    pour les afficher vous pouvez faire comme ça :

    https://pastebin.com/KEGC9P2w

    Développeur PHP et WordPress En Alsace dans l'annuaire des prestataires WordPress et WooCommerce
    Création d'extensions pour WordPress et WooCommerce - Personnalisation d'extensions existantes
    🔶 Si vous appréciez mon aide, vous pouvez me faire un don de n'importe quel montant en cliquant ici.

3 sujets de 21 à 23 (sur un total de 23)
  • Vous devez être connecté pour répondre à ce sujet.