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

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


Cats萌萌
浏览 137回答 3
3回答

PIPIONE

糟糕的代码。当 js 函数发送到浏览器时,您不能使用 php 代码,而是将 ajax 发送到服务器以设置 SESSION,然后通过 javascript 重定向。

慕后森

我认为这一行不正确:<?php&nbsp;$_SESSION['adult']&nbsp;=&nbsp;'y';&nbsp;wp_redirect(home_url());&nbsp;exit;&nbsp;?>反而 :<?php&nbsp;($_SESSION['adult']&nbsp;=&nbsp;'y')&nbsp;?&nbsp;wp_redirect(home_url())&nbsp;:&nbsp;exit;&nbsp;?>

小唯快跑啊

尝试通过 Javascript 重定向,而不是 PHP。if (rsp.success) {&nbsp;&nbsp; &nbsp; alert('success');&nbsp; &nbsp; window.location.href = '/'; // Or anything you want.}无论您授权(通过 Javascript)成功还是失败,if 语句中的 PHP 都会在您访问登录页面时一直运行。但这只是示例代码,您应该调用 admin-ajax.php 或像@May Weather VN 的 anwser 这样的 php 文件来将会话分配给它们。
打开App,查看更多内容
随时随地看视频慕课网APP