我試圖檢查WooCommerce是否活動,我創建了一個默認值爲false的屬性,然後創建了一個方法來檢查WooCommerce是使用is_plugin_active活躍的()和admin_init掛鉤,如果激活屬性的值必須更新爲真:這裏是代碼:不能通過WordPress插件中的方法更改屬性值
class MyClass{
public $woo_active = false;
public function __construct(){
add_action('admin_init', array($this, 'check_if_woo_active'));
}
// check if WooCommerce is active
public function check_if_woo_active(){
if(is_plugin_active('woocommerce/woocommerce.php')){
$this->woo_active = true;
}
}
// is_woo_active()
public function is_woo_active(){
return $this->woo_active;
}
}
$var = new MyClass();
var_dump($var->is_woo_active());
的問題是的var_dump返回false即使WooCommerce是活躍的,但是,如果我在函數check_if_woo_active()中使用var_dump,它將返回true。
爲什麼屬性值沒有更新?感謝
更新時間:
第二個解決方案爲@helgatheviking sugested優良工程,也是這個作品非常好,短
class MyClass{
// check if WooCommerce is active
public function is_woo_active(){
include_once(ABSPATH . 'wp-admin/includes/plugin.php');
if(is_plugin_active('woocommerce/woocommerce.php')){
return true;
}else{
return false;
}
}
}
$var = new MyClass();
var_dump($var->is_woo_active());
謝謝你,第二個解決方案是工作得很好,我發現了另一個短的路該工程沒有使用admin_init,實際上沒有必要更新的屬性值,方法is_woo_active()會做 MyClass類{ \t //檢查WooCommerce是活躍 \t公共區域c函數is_woo_active(){include_once(ABSPATH。){if_woo_active(){ \t \t include_once 'wp-admin/includes/plugin.php'); \t \t if(is_plugin_active('woocommerce/woocommerce.php')){ \t \t \t return true; \t \t} else { \t \t \t return false; \t \t} \t} } 是$ var =新MyClass的(); var_dump($ var-> is_woo_active()); –