javascript中的wordpress php在回调成功后工作吗?

时间:2019-07-17 09:10:08

标签: javascript php wordpress callback

我在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。 我以为我在回调成功后会被重定向,但这种方式根本不起作用。 有什么问题吗?

3 个答案:

答案 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文件来为它们分配会话。