Accueil Forums Discussion générale Pouvoir commander sans payer

Ce sujet a 2 réponses, 2 participants et a été mis à jour par  matheo.zeller, il y a 1 semaine et 2 jours.

3 sujets de 1 à 3 (sur un total de 3)
  • Auteur
    Messages
  • #142408

    matheo.zeller
    Participant
    Points: 15 pts

    Bonjour , je ne sais pas si je suis au bon endroit.

    Voilà mon problème: je souhaite pouvoir vérifier un utilisateur en tant qu’admin, et si tel est le cas, mettre la totalité des produits gratuits. Afin de permettre à celui-ci de tester les commandes ou autres demandes relatives à cet effet.

    J’ai déjà essayé plusieurs solutions dont une qui fonctionne, mais uniquement pour des prix fixes :

    function return_custom_price($price, $product) {
    
        // if (current_user_can( 'administrator' ) === 'true'){
            global $post, $blog_id;
            $product = wc_get_product( $post_id );
            $post_id = $post->ID;
            $price = 0;
            return $price;
        // }
    
    }
    add_filter('woocommerce_get_price', 'return_custom_price', 10, 2);

    Le code si dessus fonctionne, mes prix fixes sont biens à zéro et je peux commander. Bien évidemment je ne teste pas encore si je suis un utilisateur admin, car je ne trouve pas de bonnes façons de le faire, voici la façon dont j’ai essayé de le tester :

    if (current_user_can( $capability , $object_id )){
    
        echo 'admin';
    
    }else{
    
        echo 'no admin';
    
    }

    Donc me voilà bloqué pour les commandes à prix variables (avec options du genre si j’habite au Portugal, le produit est 5€ plus cher). Impossible de mettre les tarifs à zéro. De plus, j’ai essayé une méthode qui semble s’approcher du résultat attendu , mais cela m’empêche d’ajouter des produits dans le panier pour une raison que j’ignore, voici la méthode :

    add_filter( 'woocommerce_variable_sale_price_html', 'new_variable_price_format', 10, 2 );
    add_filter( 'woocommerce_variable_price_html', 'new_variable_price_format', 10, 2 );
    function new_variable_price_format( $formated_price, $product ) {
    
        $price = get_post_meta( $product->get_id(), '_wholesale_price', true);
        $price = 0;
        return wc_price($price);
    }
    
    // Selected variation prices
    add_filter('woocommerce_product_variation_get_sale_price', 'custom_product_get_price', 10, 2 );
    add_filter('woocommerce_product_variation_get_price', 'custom_product_get_price', 10, 2 );
    function custom_product_get_price( $price, $product ){
        return get_post_meta( $product->get_id(), '_wholesale_price', true);
    }
    #142853

    Guy
    Modérateur
    Points: 3,042 pts
    ModérateurCertifiéFreelance
    Membre 2 étoiles

    Salut,

    Si tu ne maîtrises pas le PHP ce serait sans doute plus simple d’utiliser un plugin de gestion des prix selon les rôles.

    Evidemment c’est payant, mais si tu dois t’adresser à un développeur…

    #143174

    matheo.zeller
    Participant
    Points: 15 pts

    Salut,

    Si tu ne maîtrises pas le PHP ce serait sans doute plus simple d’utiliser un plugin de gestion des prix selon les rôles.

    Evidemment c’est payant, mais si tu dois t’adresser à un développeur…

    Totalement hors sujet. Si je ne maitrisais pas php un minimum je ne serais pas là à poster du code. Merci de lire ma demande correctement, ou de s’abstenir de répondre.

    Cordialement.

3 sujets de 1 à 3 (sur un total de 3)

Vous devez être connecté pour répondre à ce sujet.