我使用WordPress运行一个活动网站,如果有订阅,人们可以登录该网站。
在每个活动的底部,如果你是管理员,你可以看到一个客人名单,上面有姓名、电子邮件、电话、头像(通过BuddyPress)以及你的订阅详细信息。
订阅详细信息存储为自定义帖子(&P);我想做的只是简单地列出他们第一次开始订阅时的日期。
订阅到期似乎很容易,因为它存储为元键,但我无法为每个调用的自定义帖子显示单独的帖子发布日期。
这就是我到目前为止所做的:可能有点粗糙,但自从网站上线以来,我只在上个月左右自学了PHP,所以请耐心等待。
<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));
?>)
</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));
{?><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>
<!-- (not in actual code) - GETING THE USERS FIRST PUBLISHED SUBSCRIPTION?? \\/ \\/ \\/ \\/ -->
<td>
<?php
$useremail = $ticket[\'email\'];
$user = get_user_by( \'email\', $useremail );
$IDuser = $user->ID;
$subscriptions = getUserSubscriptions($IDuser);
echo get_the_date(\'M j, Y\', $subscriptions);
?>
</td>
<!-- (not in actual code) - 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 echo date(\'d/m/Y\',strtotime($subscriptions[0][\'expiry\'])); ?>
工作正常,但我正在调用特定的元键。据我所知,wordpress没有调用此数据的特定键。。。?
如果有人能帮上忙,那就太好了,因为有很多帮助可以帮助你在页面上调用时间戳,也可以帮助你获取特定的帖子ID,但这种类型的调用没有任何帮助。
==========================
编辑:尝试在重复回答中实现代码显示,但没有任何意义-我不想将所有帖子显示为列表,因为有很多博客可以提供帮助。我想用查询我的订阅CPTuser ID 从票证CPT的元数据中获取。唯一链接两个CPT的是用户ID。。。
我正在努力解决的是如何查询和匹配这两个自定义帖子,最终给出订阅的第一个发布日期。抱歉,这有点冗长-任何帮助都将不胜感激。
最合适的回答,由SO网友:Bysander 整理而成
好的,所以比我最后想的要简单得多,并且不涉及查询的查询。
同样可以通过以下方式实现:
/*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();