WordPress的:为用户创建一个新的领域usermeta

我如何创建一个新的usermeta场一个下拉选择值?

林想为所有用户创建一个条件语句与新的自定义字段我想有一定的价值。

例如,

新领域将是:批下来的数值下降是:Yes和No

有条件的声明将承认所有用户是经批准的字段值。 然后,它会发布的代码。

IM与wp_get_current_user()函数,这不正是我所需要的工作,但我只是需要一个新的自定义字段usermeta。 在这个例子中,新usermeta字段将被“artwork_approved”。

例:

wp_get_current_user(); if ($current_user->artwork_approved == 'Yes'){ echo 'Thank you for approving your artwork!'; }

人们似乎对此没有插件我真的需要这个功能。 我真的创造的下拉选项的新usermeta欣赏一些建议。

* 更新:

我用寄存器加上终极版创建一个新的领域usermeta,被称为“艺术品已批准”。 我做了一个下拉选项,以选择“否”和“是”。 否选项设置为默认值。

这创造了“艺术品已批准”usermeta领域。 我管理用户帐户,并选择是或者用这个新领域usermeta现在号,即时通讯使用应检查当前用户是否有是价值的认可艺术品的功能。 然后,它被认为表现出一定的代码。

这里是新usermeta领域使用if语句进口:

<?php global $current_user; get_currentuserinfo(); if ($current_user->artwork_approved == 'Yes') { ?> echo 'Your artwork is approved'; <?php } else { ?> echo 'Your artwork is not approved'; <?php } ?>

但是,发生了什么是它不承认if语句的第一部分。 如果我登录到批准与艺术品的任何帐户,if语句只显示即使我已经批准了选项“是”艺术品的“其他人”的一部分。

我不知道为什么它不承认是选择,因为我有它在声明中。

谢谢

--------------解决方案-------------

您可以创建一个简单的插件挂接到用户配置动作,并添加一个新的领域。

要将该字段添加到你可以连接到形式show_user_profileedit_user_profile动作和输出表单域的HTML。 下面使用复选框而不是下拉。

add_action('show_user_profile', 'my_user_profile_edit_action');
add_action('edit_user_profile', 'my_user_profile_edit_action');
function my_user_profile_edit_action($user) {
$checked = (isset($user->artwork_approved) && $user->artwork_approved) ? ' checked="checked"' : '';
?>
<h3>Other</h3>
<label for="artwork_approved">
<input name="artwork_approved" type="checkbox" id="artwork_approved" value="1"<?php echo $checked; ?>>
Artwork approved
</label>
<?php
}

然后,你需要挂接到personal_options_updateedit_user_profile_update行动,让您的字段的值,而这个保存为用户的元数据。

add_action('personal_options_update', 'my_user_profile_update_action');
add_action('edit_user_profile_update', 'my_user_profile_update_action');
function my_user_profile_update_action($user_id) {
update_user_meta($user_id, 'artwork_approved', isset($_POST['artwork_approved']));
}

然后,您的条件是如下。

if (get_user_meta($current_user->ID, 'artwork_approved', true)) {

不应代码的第二块读:

add_action('personal_options_update', 'my_user_profile_update_action');
add_action('edit_user_profile_update', 'my_user_profile_update_action');
function my_user_profile_update_action($user_id) {
update_user_meta($user_id, 'artwork_approved', $_POST['artwork_approved']);
}

通过保存的值update_user_meta$_POST['artwork_approved']isset($_POST['artwork_approved'])

分类:php 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.202 (s). 10 q(s)