如何从WordPress的{url}获取订阅级别ID

时间:2016-12-19 12:31:09

标签: php wordpress

我必须根据某些条件调整一条消息。目前它已经是登录/非登录用户的逻辑..

<?php if(is_user_logged_in()) : ?>
<h1 class="abo-title page-title abo-payment"><?php echo __( 'Zahlungsdetails',     'issuem-leaky-paywall' ); ?></h1>
    <p>Bitte geben Sie Ihre Zahlungsdetails ein.</p>
    <?php else: ?>
    <h1 class="abo-title page-title abo-register"><?php echo __( 'Registrieren  Sie sich hier für Ihren Gratismonat.', 'issuem-leaky-paywall' ); ?><br><span class="bold"><?php echo __( 'Keine Verpflichtung, jederzeit kündbar.', 'issuem-leaky-paywall' ) ?></span></h1>
    <?php endif ?

但是现在我需要为非登录用户显示另一条消息,但是谁会直接使用URL上的订阅级别ID来到订阅页面,例如......

https://example.de/subscribe/ 

并且有三个或更多选项可以点击付费订阅,例如....

https://example.de/register/?level_id=1
https://example.de/register/?level_id=2
.....

根据级别ID我必须更改消息。

这是Wordpress网站,我试图获取级别ID来显示不同的消息。它有漏水的付费插件。

任何想法?

2 个答案:

答案 0 :(得分:0)

案例1:您要求订阅者角色ID。

注意:不安全的传递方式请使用隐藏字段。

get_users($args)它允许您获取订阅者用户列表。

<?php
$args = array(
 'role' => 'subscriber',
 'orderby' => 'user_nicename',
 'order' => 'ASC'
);
 $subscribers = get_users($args);
echo '<ul>';
 foreach ($subscribers as $user) {
 echo '<li>' . $user->display_name.'['.$user->user_email . ']</li>';
 }
echo '</ul>';
?>

案例2:您希望在注册到附加网址之前重定向。

<a href="<?php echo wp_registration_url(); ?>">Register</a>

答案 1 :(得分:0)

您可以尝试使用GET检查您的网址是否包含level_id。像这样:

if(isset($_GET['level_id'])){
$level_id = trim($_GET['level_id']);
}else{
$level_id = false;
}

<?php if(is_user_logged_in()) { ?>
<h1 class="abo-title page-title abo-payment"><?php echo __( 'Zahlungsdetails',     'issuem-leaky-paywall' ); ?></h1>
    <p>Bitte geben Sie Ihre Zahlungsdetails ein.</p>
    <?php else: ?>
    <h1 class="abo-title page-title abo-register"><?php echo __( 'Registrieren  Sie sich hier für Ihren Gratismonat.', 'issuem-leaky-paywall' ); ?><br><span class="bold"><?php echo __( 'Keine Verpflichtung, jederzeit kündbar.', 'issuem-leaky-paywall' ) ?></span></h1>

    <?php } elseif($level_id == 1){ ?>

         // Your custom message for level_id 1

   <?php } elseif($level_id == 2){ ?>

      // Your custom message for level_id 2

     <?php } ?>