Problème de lien PHP

  • WordPress :4.8.2
  • Statut : non résolu
10 sujets de 1 à 10 (sur un total de 10)
  • Auteur
    Messages
  • #1956684

    BilouZ36
    Participant
    Initié WordPress
    7 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : Wampserver64
    • Thème utilisé : Wampserver64
    • Extensions en place : Allow PHP in Posts and Pages
    • Nom de l’hébergeur : local
    • Adresse du site : local

    Problème(s) rencontré(s) :

    Bonjour, j’utilise Allow PHP in Posts and Pages pour du code php perso sur mes pages et, je n’arrive pas à faire ressortir mes liens avec mes conditions… Les conditions marchent bien pas de problème, mais j’ai bien le texte du lien, exmple « lien 1 », mais le lien ne ressort pas…

    Comment faire?

    Merci d’avance

    Exemple de code:

    if(condition == "1"){echo '<a href="url_de_la_page/">lien 1</a>';
    }elseif(condition == 2"){echo '<a href="url_de_la_page_2/"> lien 2</a>';
    }else{echo '<a href="url_de_la_page_3/"> lien 3</a>'; }
    test code lien

     

    #1956854

    apistudio
    Participant
    Initié WordPress
    23 contributions

    Bonjour.

    Difficile à dire sans avoir un aperçu du problème, as-tu possibilité de stocker le site sur un espace en ligne ?

    PS : je serais toi je ne partirais pas sur genre de fonctionnement en autorisant le PHP sur les posts, dangereux niveau sécurité quand tu auras mis le site en ligne.

    #1957644

    BilouZ36
    Participant
    Initié WordPress
    7 contributions

    Bonjour Apistudio,

    pour la sécurité j’en suis bien conscient mais j’ai besoin de modifier le rôle des membres automatiquement (achat via paypal, puis paypal renvoi le membre sur une page qui actualise le rôle membre et qui confirme au membre son nouveau rôle) et surtout cela m’évite de créer plusieurs fois la même page.

    Pour la mise en ligne, pas encore, je le travail en local pour le moment quand j’ai du temps…

     

    #1957982

    ftiar
    Participant
    Initié WordPress
    20 contributions

    Bonjour,

    Possibilité d’avoir un exemple de code exact ? Sans modification, car là on ne sait pas comment tu affiches ton lien. Le href de tes liens est surement vide, tu dois lui passer une variable vide je suppose ?

    #1959002

    BilouZ36
    Participant
    Initié WordPress
    7 contributions
    $niveau_utilisateur = infos_member();
    if($niveau_utilisateur == "member"){echo '<a href="http://localhost/wordpress/module-2-debloquer/">Débloquer le module 2 maintenant</a>';
    }elseif($niveau_utilisateur == "MF2" ){echo '<a href="http://localhost/wordpress/private-module-2/"> Accéder au module</a>';}

    Alors comme je le disais la condition est bonne car si le membre est MF2, le texte qui est affiché est -> « Accéder au module ».

    Et si j’affiche le code source de la page j’ai <p>Accéder au module</<span class= »end-tag »>p</span>>

    #1959009

    ftiar
    Participant
    Initié WordPress
    20 contributions

    Tu as vérifié que tes balises sont bien ouvertes et fermés correctement ?

    Là je vois pas trop pour le coup, ca a l’air bon, le lien devrait être cliquable.

    Tu peux mettre le code source HTML généré dans le Pastacode ? Au moins avec les liens et quelques balises parentes.

    #1960723

    BilouZ36
    Participant
    Initié WordPress
    7 contributions
    [php]
    function infos_member(){
    mysql_connect("localhost","root","")or die ('Connexion au serveur impossible !');
    mysql_select_db("blog")or die ('Connexion a la base impossible !');
    
    global $user_ID;
    
    $sql = 'SELECT * FROM wp_usermeta WHERE user_id= '.$user_ID.' AND meta_key= "role"';
    $meta_key_utilisateur = $tout["meta_key"];
    $derouleTout = mysql_query($sql);
    $tout = mysql_fetch_array($derouleTout);
    
    return $meta_key_utilisateur = $tout["meta_value"];
    
    mysql_close();
    }
    
    [/php]
    
    <strong>Module 1 – Commencer sur de bonnes bases  </strong>
    
    <a href="http://localhost/wordpress/private-formation-gratuite/">Accédez au module</a> <!-- lien ok html -->
    
    <strong>Module 2 – Indicateurs à fort potentiel</strong>
    <a href="http://localhost/wordpress/module-2-indicateurs-a-fort-potentiel-debloque/">Débloquer le module 2 maintenant</a> <!-- lien ok html -->
    [php]
    
    $niveau_utilisateur = infos_member();
    // Condition OK!!
    if($niveau_utilisateur == "member"){echo '<a href="http://localhost/wordpress/module-2-indicateurs-a-fort-potentiel-debloque/">Débloquer le module 2 maintenant</a>';<!-- texte lien ok, lien non cliquable -->
    }elseif($niveau_utilisateur == "MF2"){echo '<a href="http://localhost/wordpress/private-module-2/"> Accéder au module</a>';}<!-- texte lien ok, lien non cliquable -->
    [/php]
    Code PHP de la page

     <p>Voici les modules débloqués de votre formation:<br />
    </p>
    <p><strong>Module 1 – Commencer sur de bonnes bases  </strong></p>
    <p><a href="http://localhost/wordpress/private-formation-gratuite/">Accédez au module</a> <!-- lien ok html --></p>
    <p><strong>Module 2 – Indicateurs à fort potentiel</strong><br />
    <a href="http://localhost/wordpress/module-2-indicateurs-a-fort-potentiel-debloque/">Débloquer le module 2 maintenant</a> <!-- lien ok html --><br />
    </p>
    <p>Accédez au module</p> <!-- lien non cliquable PHP -->
    Code source de la page depuis firefox

    • Cette réponse a été modifiée le il y a 1 semaine et 3 jours par  BilouZ36.
    #1960794

    ftiar
    Participant
    Initié WordPress
    20 contributions

    Hum, donc il transforme tes deux derniers liens (a) en p ?! C’est étrange.

    Je vois pas d’où ca vient.

    Par contre, pour ta fonction infos_member, tu te prends un peu la tête.

    Tu pourrais utiliser l’API de WordPress directement, comme ceci pour avoir le rôle :

    <?php
    $user = get_userdata( get_current_user_id() );
    
    $user_roles = $user->roles;
    if ( ! empty( $user_roles) ) {
    	if ( in_array( 'member', $user_roles ) ) {
    		
    	}
    }

    Ca t’évite de te baser sur des globales et des requêtes mySql à la main.

    #1964938

    BilouZ36
    Participant
    Initié WordPress
    7 contributions

    Merci ftiar pour le bout de code je vais tester ça rapidement 😉

    #1965679

    BilouZ36
    Participant
    Initié WordPress
    7 contributions

    Bon, pour résoudre mon problème je viens de tester avec un fichier .php en externe de la page et un require(monfichier.php) et tout marche…

     

    • Cette réponse a été modifiée le il y a 5 jours et 3 heures par  BilouZ36.
10 sujets de 1 à 10 (sur un total de 10)
  • Vous devez être connecté pour répondre à ce sujet.