在我正在编写的插件中,我需要让用户在发表评论之前从下拉列表中选择一个选项。我使用了comment\\u form操作,并在注释表单中插入了一个下拉列表。
/**
* Modify the comment to add our custom left and right dropdown
*/
function modify_comment_form($post_id) {
echo "
<label class=\'comment\'>Choose your side:</label>
<select id=\'tallytree_side\' name=\'tallytree_side\'>
<option selected=\'selected\' value=\'neutral\'>Neutral Comment</option>
<option value=\'left_answer\'>" . $this->get_left_answer() . "</option>
<option value=\'right_answer\'>" . $this->get_right_answer() . "</option>
</select>";
}
add_action(\'comment_form\', \'modify_comment_form\');
如下所示:
现在,我只需要能够保存这个下拉列表的值,当评论发布为这个特定评论的元数据时。请注意,这是一个插件,我不想按照中的建议修改核心wordpress文件a tutorial here. 我发现a relevant discussions 在wordpress论坛上,我仍然找不到我想要的答案。
如何将所选选项值保存为wordpress数据库中的注释元?
我是否需要使用AJAX来实现这一点,或者可以通过简单地使用可以用来检索下拉菜单值的操作或过滤器来实现这一点?
SO网友:Pontus Abrahamsson
您可以使用该功能update_user_meta
用于登录用户和php函数setcookie
对于访客。以下是如何使用的开始update_user_meta
您可以在提交表单时运行此函数,也可以通过AJAX运行此函数,我建议您使用AJAX运行此函数。
function wpse_update_user_commentform() {
/**
* Get values from the selected
* Dropdown as tha variable $side
* Change this to your dropdown name
*/
$side = $_POST[\'dropdown\'];
$comment_id = get_comment_ID();
// Update the comment meta "comment_side" to the selected value
update_comment_meta( $comment_id, \'comment_side\', $side );
}