我正在制作一个Wordpress网站,如果已登录,用户可以对帖子进行投票,这目前正在工作。我现在想做的是让他们在登录网站之前通过选中复选框来投票。如果未选中该复选框,则函数必须像现在一样运行。我希望我的解释很清楚。提前谢谢你。
如果用户已登录,则这是运行以下脚本的表单。并且在登录之前尚未通过选中底部表单中的复选框进行投票。
<textarea id="msg" maxlength="100" rows="4" class="widget_textarea"></textarea>
<button type="submit" class="vote widget_button">Sign</button>
<input type="hidden" id="post_id" value="<?php the_ID() ?>">
如果用户已登录,则可以使用上面的表单运行脚本。如果用户在登录之前选中了下面复选框,也应该运行。
$(".vote").click(function() {
$(".vote").html('busy');
$url = "/vote/?petitie_id=" + $("#post_id").val() + "&msg=" + $("#msg").val();
$.ajax({
dataType: "json",
url: $url
})
.done(function(data) {
$(".vote").html('done');
if (data.success) {
$(".vote").html('voted')
} else {
$(".vote").html('already voted');
}
})
.fail(function() {
alert('fail');
})
});
带有复选框的登录表单,如果选中该复选框,则必须在登录后运行上面的脚本。
<form name="loginform" class="wpuf-login-form row" id="loginform" action="/login/" method="post">
<div class="col-md-12 col-sm-12 col-xs-12 login_section_login_forms">
<div class="form-group">
<input type="text" name="log" class="form-control top-buffer" placeholder="Naam" value="" size="20" />
</div>
<div class="form-group">
<input type="password" name="pwd" class="form-control top-buffer" placeholder="Wachtwoord" value="" size="20" />
</div>
<input id="vote_for_me" type="checkbox"> Login and vote<br>
<?php do_action('login_form'); ?>
</div>
<div class="col-md-12 col-sm-12 col-xs-12 login_button">
<input type="submit" name="wp-submit" type="button" id="myButton1" class="btn btn-danger btn-lg btn-block" value="<?php esc_attr_e('Log In'); ?>" />
<input type="hidden" name="redirect_to" value="<?php echo WPUF_Login::get_posted_value('redirect_to'); ?>" />
<input type="hidden" name="wpuf_login" value="true" />
<input type="hidden" name="action" value="login" />
<?php wp_nonce_field('wpuf_login_action'); ?>
</div>
</form>
使用复选框的值在 JavaScript 中创建一个 cookie,如下所示:
document.cookie="vote_post123=1";
您可以使用 onclick()
事件或窗体的 onsubmit()
事件执行此操作。
然后,登录后,将用户重定向到检查$_COOKIE['vote_post123']
以查看它是否等于 1 的页面,并执行适当的操作或基于此回显适当的 JavaScript 代码。