我在javascript中使用php代码。 但是,有一个错误。
我不知道我的代码出了什么问题。 你可以看看吗?
function wp_auth_javascript() {
if (is_page('login')) {
?>
<script type="text/javascript">
function auth_adult(){
IMP.certification({ // param
merchant_uid:'merchant_' + new Date().getTime(),
min_age: 19
}, function (rsp) { // callback
if (rsp.success) {
alert('success');
<?php $_SESSION['adult'] = 'y'; wp_redirect(home_url()); exit; ?>
}else{
alert('fail');
}
});
}
</script>
<?php
}
}
add_action('wp_head', 'wp_auth_javascript');
当我使用此代码时, 当我进入登录页面时, 它会自动重定向到主URL。 我以为我在回调成功后会被重定向,但这种方式根本不起作用。 有什么问题吗?
答案 0 :(得分:0)
我认为这行不正确:
<?php $_SESSION['adult'] = 'y'; wp_redirect(home_url()); exit; ?>
相反:
<?php ($_SESSION['adult'] = 'y') ? wp_redirect(home_url()) : exit; ?>
答案 1 :(得分:0)
错误代码。将js函数发送到浏览器后,您将无法使用php代码,而是将ajax发送到服务器以设置SESSION,然后通过javascript进行重定向。
答案 2 :(得分:0)
尝试通过Javascript而不是PHP进行重定向。
if (rsp.success) {
alert('success');
window.location.href = '/'; // Or anything you want.
}
即使您(通过Javascript)授权成功或失败,if语句中的PHP仍将在您访问登录页面的所有时间运行。
但是,仅是示例代码,您应该调用admin-ajax.php或类似@May Weather VN的anwser的php文件来为它们分配会话。