Étiqueté : , ,

9 sujets de 1 à 9 (sur un total de 9)
  • Auteur
    Messages
  • #43324
    Stephane Irie
    Participant
    Points: 45 pts
    Membre 2 étoiles

    Bonjour, j’ai un problème avec l’affichage des méthodes de livraison personnalisée sur la page panier de woocommerce.

    En effet, j’ai développé un plugin de livraison pour un marketplace utilisant wc multi vendor. Le plugin fonctionne bien sur ma plateforme de développement, mais lorsque j’installe sur une autre installation et tout autre plugin de livraison personnalisée, rien ne s’affiche.

    pourriez vous me donner un coup de main?

    Merci pour votre aide.

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

    Salut

    Ca va être difficile de t’aider sur un plugin don seul toi connais le code.

    Pb de cache ? / URL en dur dans ton code ? / Gestion des permalien…

    depanagewp
    #43404
    Stephane Irie
    Participant
    Points: 45 pts
    Membre 2 étoiles

    Bonjour,

    Merci, pour votre réponse, je vous ai mis en pièces jointe le plugin, vous pouvez jetez un coup d’œil au code. J’utilise le thème storefront.

    Cordialement

    depanagewp
    #45824
    Mathieu
    Participant
    Points: 1,315 pts
    Membre 2 étoiles

    Depuis qu’il y a le système de zones, il faut faire quelques modifications pour que la nouvelle méthode de transport fonctionne.

    Dans le constructeur de la classe, il faut tenir compte de l’identifiant d’instance et indiquer dans l’attribut supports que la méthode de transport gère les zones comme cela :

    public function __construct($instance_id = 0) {
        
        $this->instance_id = absint($instance_id);
        
        $this->supports = [
            "shipping-zones",
            "instance-settings",
            "instance-settings-modal",
        ];

    À la déclaration dans le filtre woocommerce_shipping_methods, rajouter l’identifiant de la méthode comme clé du tableau :
    $methods["lfc_free_shipping"] = "WC_Lfc_Free_Shipping";

    Et dans la méthode calculate_shipping, passer l’identifiant de l’instance pour indiquer le prix :

    $this->add_rate([
        "id" => $this->instance_id,
        "label" => $this->title,
        "cost" => $prix,
    ]);

    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.

    depanagewp
    2 utilisateurs ont remercié l'auteur de ce message.
    #45825
    Stephane Irie
    Participant
    Points: 45 pts
    Membre 2 étoiles

    Merci beaucoup pour votre intervention , je vais apporter la mise à jour et vous revenir.

    Cordialement

    depanagewp
    #46357
    Stephane Irie
    Participant
    Points: 45 pts
    Membre 2 étoiles

    Bonjour, j’ai effectué la mise à jour de mon code comme recommandé par le commentaire de Mathieu. Le problème c’est que je n’arrive pas à avoir mes méthodes (y compris le mode forfai) de livraison sur la page panier.

    j’ai activer le mode debeugage de woocommerce mais rien.

    Pouvez-vous me donner une idée pour la résolution de ce problème?

    Merci pour votre aide

    cordialement

    depanagewp
    #46359
    Mathieu
    Participant
    Points: 1,315 pts
    Membre 2 étoiles

    Il y avait aussi l’indication du prix à changer, j’ai modifié le fin de mon message :
    https://woofrance.fr/forums/topic/woocommerce-plugin-de-livraison/#post-45824

    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.

    depanagewp
    1 utilisateur a remercié l'auteur de ce message.
    #46479
    Stephane Irie
    Participant
    Points: 45 pts
    Membre 2 étoiles

    Bonjour,

    Je tiens à vous dire merci pour l’aide que vous m’avez apporté, j’ai pu résoudre mes problèmes cités plus haut et mon plugin marche comme convenu, il affiche les méthodes de livraison et trie les articles par vendeur.

    Merci à Woofrance

     

    depanagewp
    #46662
    Stephane Irie
    Participant
    Points: 45 pts
    Membre 2 étoiles

    Bonjour, je traîne un problème avec un projet Woocommerce et j’aimerais avoir votre aide et conseil pour m’aider à résoudre cette équation.
    Le sujet est le suivant:
    Catégorie A:  Livres, DVD, CD, T-Hirt, tasse, Mug, peluche, casquette, porte clé,  autres articles similaires.

                       –  Si Envoi avec suivi:  5,10 euros. Rajouter 1.50 euros à chaque article supplémentaire du même vendeur.

                       –  Si Envoi en recommandé: 6.50 euros.

    Catégorie B : Gros Livres, chaussures, sacs,  autres articles similaires.

                       –  Si Envoi avec suivi:  7.50 euros. Rajouter 1.50 euros à chaque article supplémentaire du même vendeur.

                       –  Si Envoi en recommandé: 8.60 euros.

    Ainsi, pour l’exemple de 5 articles achetés chez trois vendeurs différents, on aura:

    Vendeur 1: Vente de 1 article de catégorie A: Frais de port = 5.10 euros.

    Vendeur 2: Vente de 2 articles de catégorie A: Frais de port = 5.10 euros + 1.50 euros

    Vendeur 3:  Vente de 2 articles de catégorie B: frais de port = 7.50 euros + 1.50 euros.

    L’acheteur aura donc à payer Total prix global des 5 articles + 5.10 + (5.10+1.50) + (7.50 + 1.50).

    J’ai écrit le code suivant

    foreach ( $packages['contents'] as $item_key => $item ) {
        if ( $item['quantity'] > 0 && $item['data']->needs_shipping() ) {
            
            if ( in_array( wp_get_object_terms( $item['product_id'], 'product_cat', array( 'fields' => 'ids' ) ), $category_a ) ) {
                   $count++;
                   $costA= $this->get_option('costA') + (($count-1)*1.5);
            } else {
                   $count++;
                   $costB = $this->get_option('costB') + (($count-1)*1.5);
            }   
        
            $cost= $costA + $costB;
                                    
            }
     }

    Le probleme est que, le code ne parcour pas tous les élements du tableau quand il trouvé un seul élement correspondant. Pourriez vous, me dire ce qui ne marche pas dans mon code?

    Merci pour votre aide

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