WooCommerceがアクティブかどうかをチェックしようとしています。既定値がfalseのプロパティを作成した後、WooCommerceここでのコードは次のとおりです: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はWooCommerceがアクティブな場合でもfalseを返すということですが、プロパティの有効値がtrueに更新する必要がある場合、(is_plugin_active)とadmin_initフックを使用してアクティブになっています関数check_if_woo_active()の中でvar_dumpを使うとtrueを返します。
なぜプロパティ値が更新されないのですか?おかげ
更新:
私は推測していた場合は、$var = new MyClass();
は前を実行している@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());
ありがとうございました、第二の溶液は非常にうまく機能している、私は別の短い方法を見つけましたそれはadmin_initを使用せずに動作し、実際には、メソッドis_woo_activeは()WooCommerceは \t publiがアクティブであるかどうかを確認// MyClassクラス{ \tを行いますプロパティ値を更新する必要はありませんc関数is_woo_active(){ \t \t include_once(ABSPATH。 '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()); –