PHP Предупреждение: in_array () ожидает, что параметр 2 будет массивом, ноль задан в / home / co - PullRequest
0 голосов
/ 12 апреля 2020

Мне нужен код, чтобы избежать этой ошибки в этой части: - добавлен параметр страницы редактирования продукта woocommerce для выбора указанных c пользователей / с или указанных c пользовательских ролей / с или указанных c групп / с выбранных пользователи найдут на указанной передней странице c поле выбора, чтобы выбрать продукт

, единственный способ работать без отображения ошибки (я должен выбрать хотя бы одного пользователя, одну роль пользователя и одну группу), если Я оставил, даже если одно поле из этих трех полей пусто, тогда, когда выбранный пользователь посетил страницу интерфейса, я получил следующую ошибку в error_log

[09-Apr-2020 15:55:52 UTC] PHP Предупреждение: in_array () ожидает, что параметр 2 будет массивом, ноль указан в /home/comenzo/mysite.com/wp-content/plugins/myplugin/myplugin.php в строке 1128

также я получаю Уведомление в строке 1128

Неопределенное смещение: 0

это строка 1128

if(in_array($user_id,get_post_meta($product_id,"product_user_list")[0]) || in_array($user_roles[0],get_post_meta($product_id,"product_user_role_list")[0]) || in_array($group_id,get_post_meta($product_id,"product_point_groups")[0])) {

весь код этой части

echo "<label>Select Product</label>";
echo '<select class="user_product" name="user_product" class="form-control" style="margin-bottom:30px;margin-top:30px;" required>';
echo "<option value='-1'>Select Product</option>";
/*echo "<h1>HEllo JMM JMK JPD!</h1>";*/
foreach($product_ids as $product_id)
  { 
    $product = wc_get_product( $product_id );
    /*echo "<h1>HEllo JMM JMK JPD!</h1>";
    print_r(get_post_meta($product_id,"product_user_list"));
    print_r(get_post_meta($product_id,"product_user_role_list"));
    print_r(get_post_meta($product_id,"product_point_groups"));*/
    if(in_array($user_id,get_post_meta($product_id,"product_user_list")[0]) || in_array($user_roles[0],get_post_meta($product_id,"product_user_role_list")[0]) || in_array($group_id,get_post_meta($product_id,"product_point_groups")[0])) {
        echo "<h1>IN</h1>";
    ?>

, поэтому, если я выберу, нужно указать код, чтобы избежать этой ошибки только одно поле или буксировка из трех полей, чтобы не получить эту ошибку, или даже если я не выберу ни одного из них

regards

1 Ответ

0 голосов
/ 20 апреля 2020

Я не уверен, почему вы используете [0], но если фактическое мета-значение должно быть массивом, то это будет работать:

$product = wc_get_product( $product_id );

$product_user_list = get_post_meta($product_id,"product_user_list");
$product_user_role_list = get_post_meta($product_id,"product_user_role_list");
$product_point_groups = get_post_meta($product_id,"product_point_groups");

$product_user_list_array = is_array( $product_user_list ) ? $product_user_list : array();
$product_user_role_list_array = is_array( $product_user_role_list ) ? $product_user_role_list : array();
$product_point_groups_array = is_array( $product_point_groups ) ? $product_point_groups : array();

if( in_array($user_id, $product_user_list_array) || in_array($user_roles[0],$product_user_role_list_array) || in_array($group_id,$product_point_groups_array)) {
    echo "<h1>IN</h1>";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...