WooFrance Dépannage et support WordPress WooCommerce Forums Forum de Support WooCommerce Import média téléchargeable problème répertoire

6 sujets de 1 à 6 (sur un total de 6)
  • Auteur
    Messages
  • #58154
    Aliiiiiiiiii
    Participant
    Points: 21 pts
    Membre 2 étoiles

    Bonjour à tous,

    je suis en train de faire migrer un site sous woocommerce, je passe d’un wordpress 4.8.6 & woocommerce 3.2.1 vers wordpress 4.9.5 & woocommerce 3.3.4 et rencontre un soucis pour la migration des produits téléchargeables

    J’ai réussis à migrer tout le site (média inclus) tout est là à sa place sauf les médias “produits téléchargeables” situés à l’origine dans /wp-content/uploads/woocommerce_uploads/année/mois quand j’importe mon xml de média via l’import de wordpress (il n’y a rien dans woocommerce pour faire ça ?) il me recopie l’intégralité des médias dans : /wp-content/uploads/année/mois (il ignore le woocommerce_uploads) mes fichiers sont bien importé mais pas au bon endroit

    Dans mon fichier XML le chemin est bon pourtant (mais bon visiblement il ne sert pas de ça pour copier dans la destination – même en modifiant cela ne change rien), je me retrouve donc avec l’intégralité de mes produits téléchargeables pointant vers un lien mort et l’intégralité de mes médias balancés dans le répertoire public des médias wordpress …

    j’utilise wp-cli pour faire l’import (mais même via l’interface graphique cela fait pareils)

    est ce que quelqu’un à déjà faire cette manipulation ? j’ai manqué quelque chose ?

    merci 🙂

    depanagewp
    #58158
    Fred – WooFrance
    Maître des clés
    Points: 7,403 pts
    Certifié
    Membre 2 étoiles

    Bonjour

    Pourquoi ne pas faire une mise a jour plutôt qu’une migration ?

    depanagewp
    #58160
    Aliiiiiiiiii
    Participant
    Points: 21 pts
    Membre 2 étoiles

    Le site d’origine contient énormément de plugin c’était une solution complètement différente là on change tout le principe du site le but était de repartir sur des bases propres (mais oui durant quelques moments de désespoir hier j’ai aussi pensé à la mise à jour), j’ai juste besoin de récupérer les produits & leurs produits téléchargeables liés

    Je suis étonnée d’ailleurs de n’avoir trouvé sur google aucune personne ayant tenté cette manipulation et ayant eu des soucis (soit je n’utilise pas la bonne procédure soit personne n’a jamais fais ça et en fait cela ne fonctionne pas et là je vais être embêté parce qu’il ne me reste plus que la solution import à la main … )

    depanagewp
    #58203
    Guy
    Participant
    Points: 5,495 pts
    ModérateurCertifiéFreelance
    Membre 2 étoiles

    Salut,

    Si je ne me trompe pas woocommerce 3.2.1 proposait déjà l’import/export des produits en fichier CSV, ça fonctionnerait peut-être mieux.

     

    Content(e) de mon aide ? Vous pouvez m'offrir un café ! 🙂

    Avant d'appeler à l'aide: Dépannage Woocommerce

    Vous manquez de trafic ? Payez le prix d'un seul backlink et obtenez-en beaucoup plus !

    depanagewp
    #58207
    Aliiiiiiiiii
    Participant
    Points: 21 pts
    Membre 2 étoiles

    J’ai effectivement utilisé l’export/import de woocommerce pour la partie post de type produit et ça fonctionne vraiment très bien (pour les méta et tout) mais ça ne gère pas le téléchargement puis le reupload des médias attachés, ou alors il y a une option caché mais je ne l’ai pas trouvé

    Je réexplique au cas ou mon explication n’était pas clair :

    – Les médias liés à un post de type produit sont correctement uploader par wordpress et liés à nouveau sur les fiches produits une fois ceux-ci importé via woocommerce tout va bien

    – Les fichiers téléchargeables lié à un produit en revanche sont mal uploadé et même si le lien sur la fiche produit est toujours ok forcément cela aboutit à un 404

    Ce n’est pas un problème woocommerce en soit il fait son travail c’est clairement l’importer de wordpress qui gère mal le fait que les fichiers ne soit pas dans un répertoire classique je pense

    je suis en train d’éplucher le fichier media.php pour comprendre comment wp gère l’import des images et surtout les urls …

    depanagewp
    #58263
    Aliiiiiiiiii
    Participant
    Points: 21 pts
    Membre 2 étoiles

    suite de l’aventure, le problème est lié à l’importer de wordpress effectivement qui se borne à uploader dans un répertoire année/mois par défaut, voilà ma modif sur le plugin wordpress-importer fichier wordpress-importer.php

    la solution que je teste pour le moment pas de problèmes à signaler :

    2 Modifications à faire :

    – fonction process_post() rajout de du test :

    else if ( preg_match( ‘%^(woocommerce_uploads)/ ” etc …

                        // try to use _wp_attached file for upload folder placement to ensure the same location as the export site
                        // e.g. location is 2003/05/image.jpg but the attachment post_date is 2010/09, see media_handle_upload()
                        $postdata[‘upload_date’] = $post[‘post_date’];
                        if ( isset( $post[‘postmeta’] ) ) {
                            foreach( $post[‘postmeta’] as $meta ) {
                                if ( $meta[‘key’] == ‘_wp_attached_file’ ) {
                                    if ( preg_match( ‘%^[0-9]{4}/[0-9]{2}%’, $meta[‘value’], $matches ) )
                                        $postdata[‘upload_date’] = $matches[0];
                                    else if ( preg_match( ‘%^(woocommerce_uploads)/([0-9]{4}/[0-9]{2})%’, $meta[‘value’], $matches ) )
                                        $postdata[‘upload_date’] = $matches[2];
                                        $postdata[‘upload_path_add’] = $matches[1];
                                    break;
                                }
                            }
                        }

    le but étant que la date de création soit récupérée malgré le fait que la structure répertoire ne corresponde pas à aaaa/mm (parce ça aussi c’était cassé)

    – fonction fetch_remote_file() rajout d’un filter pour les médias contenant woocommerce_uploads dans l’url pour modifier le upload path :

        function fetch_remote_file( $url, $post ) {
            // extract the file name and extension from the url
            $file_name = basename( $url );
            if ( $post[‘upload_path_add’] == ‘woocommerce_uploads’) {
                add_filter( ‘pre_option_upload_path’, function( $upload_path ) {
                    $path = “wp-content/uploads/woocommerce_uploads”;
                    return $path;
                });
            }

    la bonne nouvelle : l’upload de média woocommerce & aussi classique fonctionnent
    la 2nd bonne nouvelle : vu que wp cli utilise le plugin wordpress importer pour faire les imports ça fonctionne aussi via le cli

    Voilà si quelqu’un voit une erreur ou une suggestion je suis tout ouïe 🙂

    depanagewp
6 sujets de 1 à 6 (sur un total de 6)
  • Vous devez être connecté pour répondre à ce sujet.