无法从wpordrpess中的AJAX调用访问类属性

时间:2017-04-18 作者:Raf

我在从wp\\u ajax\\u函数内部调用类方法时遇到问题。我的代码如下所示:

 class Cart {

    public $cart_content;
    public $cart_id;
    public $db;

    public function __construct() {
        $this->db           = $GLOBALS[\'wpdb\'];

        add_action( \'wp_ajax_update_cart\', array($this, \'update_cart\') );
        add_action( \'wp_ajax_nopriv_update_cart\', array($this, \'update_cart\') );
    }

    public function get_cart_content($cart_id = false) {
        if( !$cart_id ) $cart_id = $this->cart_id;

        $content = $this->db->get_row( $this->db->prepare("SELECT content FROM {$this->db->prefix}$this->cart_table WHERE cart_id = \'%s\'", $cart_id) );
        $this->cart_content = $content ? unserialize($content->content) : $content;

        return $this->cart_content;
    }

    public function update_cart() {
        $items = $_POST[\'items\'];

        wp_send_json( $this->get_cart_content()) );
    }
问题是我无法访问update\\u cart()函数中的类属性。因此,当我调用get\\u cart\\u contents()方法时,它返回null。提前感谢您的帮助。拉法尔

1 个回复
SO网友:Raf

该问题是由类中的另一个方法引起的:

     public function create_cart_id() {
        if( is_user_logged_in() ) {
            $this->create_logged_in_cart_id();
        }else {
            $this->create_non_logged_in_cart_id();
        }

        return $this->cart_id; - adding that line solved the problem
    }
此方法生成$cart\\u id,但它没有返回其值,因此无法从外部访问它并返回null。

相关推荐

无法使用AJAX访问数据库中的数据

我正试图在wordpress中首次调用AJAX。我遵循了一些教程,到目前为止已经达到了这一点。但当我试图安慰的时候。将从数据库中获取的数据记录在AJAX调用中,我发现以下错误:未捕获引用错误:未定义数据代码:功能。phpfunction my_ajax_handler(){ global $wpdb; $name = $wpdb->get_results(\"SELECT * FROM username\"); echo $name;