Я пытаюсь проверить, активен ли WooCommerce или нет, я создал свойство со значением по умолчанию false, затем я создал метод, чтобы проверить, активен ли WooCommerce, с помощью is_plugin_active() и хука admin_init, если он активен, значение свойства должно быть обновлено до true: вот код:
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 активен, НО, если я использую var_dump внутри функции check_if_woo_active(), он возвращает true.
Почему значение свойства не обновляется? спасибо
Обновлено:
Второе решение, как предложил @helgatheviking, работает нормально, также это работает очень хорошо и коротко
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() );
Подробнее здесь: https://stackoverflow.com/questions/426 ... ess-plugin