2014-10-06 59 views
0

我試圖使用post-> ID保存帖子meta,但$ post似乎爲null並顯示通知 - 「注意:試圖獲取非屬性-object「(同時訪問$ post-> ID)

因此,add_filter似乎根本沒有工作。

add_filter('add_to_cart_redirect', array($this, 'custom_add_to_cart_redirect')); // Goes in class constructor. 


function custom_add_to_cart_redirect() { 
    global $post; 
    var_dump($post).die();  // this $post var is always null. 
    return $this->woocommerce_custom_add_to_cart_get_cartURL(); // The global $post declaration within this method doesn’t works too. 
} 

我也嘗試在全局聲明前添加wp_post_resetdata()調用,但沒有運氣。

任何想法這裏怎麼了?

回答

0

您可以使用woocommerce全局變量像

global $woocommerce; 
var_dump($woocommerce).die(); 
+0

是的,但是爲什麼$ post沒有工作? – user2119554 2014-10-06 13:42:21

+1

您正在使用woocommmerce動作鉤子,因此它將使用它自己的全局變量 – 2014-10-06 15:31:44

+0

哦,那麼可以基於它獲取當前產品ID並保存產品元字段,比如自定義url? – user2119554 2014-10-06 16:35:19

0

你在外部PHP腳本加載上面的代碼?您可能需要包括wp_load.php

+0

nope,這是一個插件,其他濾鏡的作品也一樣 – user2119554 2014-10-06 14:32:33

0

我今天遇到了類似的情況,全球$post不可用時,它應該已經。經仔細檢查,我發現每個頁面請求對於is_404()都返回true,並且因此發送0的查詢無法返回全局對象$post的數據。

沖洗固定鏈接爲我做了竅門(沒有什麼幻想,我只是重新保存它們)。

相關問題