簡體   English   中英

Wordpress:致命錯誤:調用未定義函數is_user_logged_in()

[英]Wordpress: Fatal error: Call to undefined function is_user_logged_in()

我在wordpress頁面加載一個PHP腳本,但是當腳本運行時,我得到了這個:

Fatal error: Call to undefined function is_user_logged_in()

它嘗試運行的代碼:

<?php
if ( is_user_logged_in() == true ) {
  /* Some code */
} else {
 /* Some other code */
}
?>

我試着尋找答案但我找不到合適的解決方案。
從我在互聯網上找到的,我的腳本在wordpress之外運行,這就是為什么它找不到該功能。

也許您過早地運行代碼如下所述: https//wordpress.org/support/topic/fatal-error-call-to-undefined-function-is_user_logged_in

問題是is_user_logged_in是一個可插入的函數,因此在調用此插件邏輯后加載。 解決方案是確保您不要過早地調用它。

他的解決方案是將代碼包裝在另一個在init上調用的函數中,並且可以放在functions.php文件中:

function your_login_function()
{
    if ( is_user_logged_in() == true ) {
       /* Some code */
    } else {
        /* Some other code */
    }
}
add_action('init', 'your_login_function');
require_once( wp_normalize_path(ABSPATH).'wp-load.php');

class Your_Plugin_Class {
    private  $is_user_logged_in;

    add_action('init', function(){
        $this-> is_user_logged_in = is_user_logged_in();
        echo 'is_user_logged_in'.$this->is_user_logged_in;
    });

    add_filter('woocommerce_billing_fields-2',array( $this, 'add_billing_field' ));

   }

    public function add_billing_field( $fields = array() ) {
        if ( $this->is_user_logged_in  ){
            echo 'add_billing_field'.$this->is_user_logged_in;
            return $fields;
        }else{
            echo 'add_billing_field'.$this->is_user_logged_in;
        }
    }
}

我有我的答案。

我需要將這行代碼添加到我的php腳本中:

require_once("path/to/wordpress/wp-load.php");

這就是訣竅。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM