根据使用变量的位置获取不同的用户数据

时间:2018-11-20 作者:user2265915

我正在使用

$allusers = get_users($args);                           
  foreach ( $allusers as $user ):
然后我有一个电子邮件用户按钮(firstname和lastname插入主题),还有一个回调按钮(firstname和lastname插入隐藏的联系人表单7字段)

我的模板中的电子邮件链接是:

<a href="mailto:[email protected]?subject=<?php echo $user->first_name; ?> <?php echo $user->last_name; ?>">Email</a>
这很好用;它在循环中显示正确的用户名和姓氏。但是联系人表单字段显示循环中的最后一个用户,而不是当前用户。这是我的模板中的内容:

<script type="text/javascript">
jQuery(document).ready(function($) {
    $(\'.callback\').val(\'<?php echo $user->first_name; ?> <?php echo $user->last_name; ?>\');
});
</script>
<?php echo do_shortcode( \'[contact-form-7 id="12345"]\' ); ?>
我用它在联系人表单7中插入了一个变量:https://stackoverflow.com/questions/22943559/include-php-variable-in-contact-form-7-field

为什么我的回调表单变量显示与电子邮件链接变量不同的结果,以及如何修复它?

2 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

我只看到了你代码的一些部分,但我想我知道问题所在。。。

如果这是您在循环中打印的内容:

<script type="text/javascript">
jQuery(document).ready(function($) {
    $(\'.callback\').val(\'<?php echo $user->first_name; ?> <?php echo $user->last_name; ?>\');
});
</script>
<?php echo do_shortcode( \'[contact-form-7 id="12345"]\' ); ?>
你想在同一个页面上输出多个表单,每个表单都应该包含不同的用户,那么你就不能这样做。为什么?由于这一部分:

$(\'.callback\')
表单和JS代码由PHP打印,一切正常。但是,加载页面时,JS将在客户端浏览器中的客户端上运行。因此,第一个JS代码运行,使用类“callback”选择所有元素并设置其值。然后第二个运行并再次设置所有“回调”的值。。。等等

那么如何应对呢

一种最简单的方法是使用div包装表单:

<script type="text/javascript">
jQuery(document).ready(function($) {
    $(\'.callback\', \'#user-form-<?php echo $user->ID; ?>\').val(\'<?php echo $user->first_name; ?> <?php echo $user->last_name; ?>\');
});
</script>
<div id="user-form-<?php echo $user->ID; ?>">
    <?php echo do_shortcode( \'[contact-form-7 id="12345"]\' ); ?>
</div>
这样,您可以识别每个表单,并仅在该表单内设置字段。

SO网友:Ryan Hoover

如果get_users() 根据调用时间的不同,返回结果的顺序也有所不同,很可能是因为更改了默认值orderorderby 参数。

我会特别声明,以确保您每次都得到相同的订单。在您的$args, 添加

$args = [
    ....
    \'orderby\'      => \'login\',
    \'order\'        => \'ASC\',
];

结束

相关推荐

优先级调用方法-PHPMailer->addAddress(空)

我目前正在制作一个可湿性粉剂小部件,我一直坚持这样做。我想传递一个变量$emailReceiver 从我的form() 方法到我的deliver_mail() 方法问题是我的deliver_mail() 方法已首先执行,它给出以下错误:“未捕获的phpmailerException:无效地址:…PHPMailer->addaddaddress(NULL)”这个想法是,当表单显示在小部件部分时,用户应该填写收件人的电子邮件地址。 add_action( \'widgets_init\', \'cont