我在 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 回答

PIPIONE
TA貢獻1829條經驗 獲得超9個贊
糟糕的代碼。當 js 函數發送到瀏覽器時,您不能使用 php 代碼,而是將 ajax 發送到服務器以設置 SESSION,然后通過 javascript 重定向。

慕后森
TA貢獻1802條經驗 獲得超5個贊
我認為這一行不正確:
<?php $_SESSION['adult'] = 'y'; wp_redirect(home_url()); exit; ?>
反而 :
<?php ($_SESSION['adult'] = 'y') ? wp_redirect(home_url()) : exit; ?>

小唯快跑啊
TA貢獻1863條經驗 獲得超2個贊
嘗試通過 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 文件來將會話分配給它們。
- 3 回答
- 0 關注
- 200 瀏覽
添加回答
舉報
0/150
提交
取消