web-dev-qa-db-fra.com

echo une meta_key spécifique interrogée via un message personnalisé

Je débute dans le codage, mais j'aime bricoler (sur le serveur virtuel) avec des bits pour mettre à niveau mon site Web actuel lorsque j'ai le temps.

Ce qui me serait vraiment utile serait de publier un attribut individuel d’un message personnalisé, mais l’essentiel du soutien semble être de montrer le message dans son ensemble.

J'ai une table des membres dans une zone de mon site réservée aux administrateurs et je souhaite publier une date de publication de leur abonnement (type de message personnalisé 'subscription') dans le tableau.

J'ai déjà le $ UserID - qui devrait correspondre à la meta_key 'membre' dans le message personnalisé ...

Comment puis-je faire écho à une date de publication dans la table lorsque la méta_key 'membre' = l'ID utilisateur?

Je peux poster le code nécessaire que j’ai jusqu’à présent si quelqu'un le trouve utile… Je me suis déchiré les cheveux au cours de ces derniers jours, car tout le code que j’ai essayé affiche des dates inexactes - soit la date de la page ou un écart apparemment aléatoire qui ne semble pas avoir de pertinence pour les utilisateurs individuels.

La table est dans une construction foreach.

EDIT: Code ajouté. GESTION DES PREMIERS SOUSCRIPTION PUBLIÉE PAR LES UTILISATEURS ?? Est le bit annoté que j'ai des problèmes avec. Je peux expliquer les fonctions si vous le souhaitez

<?php if (current_user_can('manage_options')) { ?>
<div class="row">
<div class="twelve columns">
  <div class="boxed">
    <h2>Event Administration for event <?php echo get_the_ID(); ?></h2>
    <?php
      $tickets = getTicketsForEvent(get_the_ID()); //EventID through ai1ec-plugin
      <table>
        <thead>
          <tr>
            <th>User (Full Name)</th>
            <th>Email Address</th>
            <th>Phone</th>
            <th>Subscription</br>Expiry/Renewal</th>
            <th>Subscriber</br> Since</th>
            <th>Photo</th>
          </tr>
        </thead>
<tbody>
          <?php foreach($tickets as $ticket) { ?>
            <tr>
              <td><?php echo $ticket['name']; ?>
<br/>(
                <?php $useremail = $ticket['email'];
                    $user = get_user_by( 'email', $useremail );
                    $IDuser = $user->ID;
                    echo bp_get_profile_field_data( array( 'field'=>'Full (Legal) Name - Not Displayed*','user_id'=>$IDuser));
//this is to get the required field out of BuddyPress profile information filled out
                    ?>)
                </td>
              <td><?php echo $ticket['email']; ?></td>
                <td><?php $useremail = $ticket['email'];
                    $user = get_user_by( 'email', $useremail );
                    $IDuser = $user->ID;
                    $telno = bp_get_profile_field_data( array( 'field'=>'Mobile phone number - Not Displayed*','user_id'=>$IDuser));
//this is to get the required field out of BuddyPress profile information filled out
                    {?><a href="tel:<?php echo $telno;?>"><?php echo $telno; }?></a>
                </td>
                <td><?php $useremail = $ticket['email'];
                    $user = get_user_by( 'email', $useremail );
                    $IDuser = $user->ID;
                    echo getSubscriberType($IDuser);
                    $subscriptions = getUserSubscriptions($IDuser);?></br> <?php echo date('d/m/Y',strtotime($subscriptions[0]['expiry'])); ?>
                </td>
// this bit uses some code in function.php just to display the type of subscription. (can also post if required)
<!-- //GETING THE USERS FIRST PUBLISHED SUBSCRIPTION?? \/  \/  \/  \/  \/  -->
<td>
<?php
$useremail = $ticket['email'];
$user = get_user_by( 'email', $useremail );
$IDuser = $user->ID;
global $wpdb;

$post_ids = $wpdb->get_results( "SELECT ID FROM $wpdb->subscriptions WHERE member ='$IDuser'" );

foreach($post_ids as $id){

    $postdate = get_the_date("Y-m-d",$id );
    echo $postdate;
?>
</td>

<!-- //GETING THE USERS FIRST PUBLISHED SUBSCRIPTION?? /\  /\  /\  /\   -->
                <td><?php $useremail = $ticket['email'];
                    $user = get_user_by( 'email', $useremail );
                    $IDuser = $user->ID;
                    echo get_avatar( $IDuser, 60); ?>
                </td>
            </tr>
          <?php } ?>
        </tbody>
      </table>

Toutes mes excuses si c'est un peu le bordel - je ne suis qu'un codeur amateur ...

1
Bysander

OK, donc était bien plus simple que je ne le pensais au final et n'impliquait pas grand-chose, mais l'approchait de manière totalement fausse:

La même chose peut être réalisée comme ceci:

     /*GETING THE USERS FIRST PUBLISHED SUBSCRIPTION?? */
$useremail = $ticket['email'];
$user = get_user_by( 'email', $useremail );
$IDuser = $user->ID;
$args = array(
              'posts_per_page' => 1,
              'post_type' => 'subscription',
              'author' => $IDuser,
              'meta_key' => 'state',
              'meta_value' => 'complete',
              'orderby' => 'date',
              'order' => 'ASC',
              );
$first_post = new WP_Query($args);
//    '<pre>'.print_r($first_post).'</pre>'; // You can use this to check what the query produces to make sure you're on the right track.
if ($first_post->have_posts()) {
    $first_post->the_post();

    the_time('M j, Y');

    wp_reset_postdata();

Cela devrait vous donner le premier abonnement publié appartenant à $IDuser mais peut être utilisé pour tout type de publication si vous modifiez le 'post_type'

0
Bysander