in_array () ожидает, что параметр 2 будет массивом, логическое значение указано в строке 45 - PullRequest
0 голосов
/ 25 апреля 2020

В журнале ошибок моего сервера я получаю следующее PHP Предупреждение:

in_array () ожидает, что параметр 2 будет массивом, логическое значение задано в "/ / ... "в строке 45.

В строке 45 я установил функцию, которая проверяет, активен ли плагин WooCommerce.

    /**
 * Construction function
 */
public function __construct() {
    // Check if Woocomerce plugin is actived
    if ( ! in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
        return;
    }

    $this->new_duration = sober_get_option( 'product_newness' );

    $this->parse_query();
    $this->hooks();
}

Проверка, если он´ Активен ли оператор if, нужно ли что-то, чего я не вижу?

Ошибка появляется в моем журнале ошибок.

1 Ответ

1 голос
/ 25 апреля 2020

Вам нужно изменить метод, чтобы проверить, доступен ли плагин .

if(!is_plugin_active('woocommerce/woocommerce.php')) {
    return;
}

Ваш метод не работает, потому что вы проверяете с помощью in_array(), который должен иметь 2-й параметр является массивом, но apply_filters() возвращает логическое значение.

Update

Вы можете попытаться привести к результату apply_filters(), являющемуся массивом.

if ( ! in_array( 'woocommerce/woocommerce.php', (array)apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
   return;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...