3 sujets de 1 à 3 (sur un total de 3)
  • Auteur
    Messages
  • #142408
    matheo.zeller
    Participant
    Points: 18 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);
    }
    depanagewp
    #142853
    Guy
    Participant
    Points: 5,495 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…

    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
    #143174
    matheo.zeller
    Participant
    Points: 18 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.

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