我试图检索使用这个插件设置的Wordpress用户组列表,并让用户能够使用这个插件单独发送电子邮件给每个组。这基本上是复制一个listserv。
在安装插件和设置组列表之后,电子邮件插件将显示Wordpress角色,即编辑器/订阅服务器等,而不是我的自定义组。所以,我打开了发送小组邮件的表格,这里是原来的树干。
现在,在从第97行侵入到第119行之后,我得到了以下结果:
<select id="send_roles" name="send_roles[]" multiple="multiple"
size="8" style="width: 654px; height: 250px;">
<?php
$roles = mailusers_get_roles($user_ID, MAILUSERS_ACCEPT_MASS_EMAIL_USER_META);
foreach ($roles as $key => $value) {
?>
<?php
$data = mysql_query("SELECT * FROM wp_groups_group")
or die(mysql_error());
while($info = mysql_fetch_array( $data ))
{ ?>
<option value="<?php echo $key; ?>" <?php
echo (in_array($key, $send_roles) ? ' selected="yes"' : '');?>>
<?php
printf('%s - %s', __('Group', MAILUSERS_I18N_DOMAIN), $info['name']);
}
?>
</option>
<?php
}
?>
</select>这太棒了,它显示了电子邮件表单。现在,在我的用户组列表中,唯一的问题是,无论我选择哪个电子邮件组,它总是将电子邮件发送给所有组中的所有用户。提交表单后,组将显示为所有被选中的组,而不仅仅是我选择的组。
如果有人能帮忙,我会非常感激的!
我用的是Wordpress 3.5。
发布于 2013-01-09 20:43:48
下面是一个精简的HTML示例(非Wordpress),以帮助您发现代码中的问题:
<html>
<body>
<?php if ($_POST): ?>
<?php print_r($_POST); ?>
<?php endif; ?>
<form method="post">
<select id="send_roles"
name="send_roles[]"
multiple="multiple"
size="8"
style="width: 654px; height: 250px;"
>
<option value="registered">Group - Registered</option>
<option value="mens">Group - Mens group</option>
<option value="monday">Group - Monday night</option>
<option value="tueday">Group - Tuesday Night</option>
<option value="unaffiliated">Group - Unaffiliated</option>
<option value="alumni">Group - Alumni</option>
</select>
<input type="submit" value="Submit" />
</form>
</body>
</html>您有两个问题(在示例中都是修复的):
因此,看起来来自mailusers_get_roles()的值是错误的--不要让每个值都是“订阅者”。另外,将</option>移动到前面的大括号之前,根据需要打开/关闭PHP标记。
https://stackoverflow.com/questions/14233816
复制相似问题