Цикл категорий WooCommerce в админ панели WordPress

Я пытаюсь создать цикл по категориям продуктов WooCommerce в админ-панели WordPress, используя настройки API, но следующий вывод кода:

Примечание: преобразование массива в строку в
C: \ xampp \ htdocs \ wordpress2 \ wp-includes \ general-template.php на линии
3550

Эта функция связана с ошибкой в ​​general-template.php.

/**
* Private helper function for checked, selected, and disabled.
*
* Compares the first two arguments and if identical marks as $type
*
* @since 2.8.0
* @access private
*
* @param mixed  $helper  One of the values to compare
* @param mixed  $current (true) The other value to compare if not just true
* @param bool   $echo    Whether to echo or just return the string
* @param string $type    The type of checked|selected|disabled we are doing
* @return string html attribute or empty string
*/
function __checked_selected_helper( $helper, $current, $echo, $type ) {
if ( (string) $helper === (string) $current )
$result = " $type='$type'";
else
$result = '';

if ( $echo )
echo $result;

return $result;
}

Строка 3550 это: if ( (string) $helper === (string) $current )

Я читал много похожих вопросов, но не могу найти ошибку, я знаю, что с массивами цикла что-то не так. Я пытался var_dump() переменные и кажется, что этот код будет выводить 2 массива, но я не могу выделить значение ["name"] что я хочу использовать.
Это вывод переменной $terms

 array(2) { [0]=> object(WP_Term)#9234 (16) { ["term_id"]=> int(8) ["name"]=> string(6) "mobile" ["slug"]=> string(6) "mobile" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(8) ["taxonomy"]=> string(11) "product_cat" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(4) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(8) ["category_count"]=> int(4) ["category_description"]=> string(0) "" ["cat_name"]=> string(6) "mobile" ["category_nicename"]=> string(6) "mobile" ["category_parent"]=> int(0) } [1]=> object(WP_Term)#9266 (16) { ["term_id"]=> int(9) ["name"]=> string(4) "vino" ["slug"]=> string(4) "vino" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(9) ["taxonomy"]=> string(11) "product_cat" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(1) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(9) ["category_count"]=> int(1) ["category_description"]=> string(0) "" ["cat_name"]=> string(4) "vino" ["category_nicename"]=> string(4) "vino" ["category_parent"]=> int(0) } }

Спасибо за любую помощь.

<?php
function offwoo_checkbox_field_2_render() {
$options = get_option( 'offwoo_settings' );
global $woocommerce;

$terms = get_categories( array(
'taxonomy' => 'product_cat',
'orderby'   =>'name',
'parent'  => 0
));

var_dump($terms);

foreach ($terms as $term) {
?>
<input type='checkbox' name='offwoo_settings[offwoo_checkbox_field_2]' <?php if(isset($options['offwoo_checkbox_field_2'])) { checked( $options['offwoo_checkbox_field_2'], 1 ); } ?> value='<?php echo $term->name; ?>'>
<label><?php echo $term->name; ?></label>
<?php
}
}
?>

0

Решение

Я нашел решение этого вопроса также благодаря этому другому:

https://wordpress.stackexchange.com/questions/183007/checked-function-on-a-multidimensional-array

В этом случае проблема, как правильно указано в комментариях выше, заключается в том, что checked() Функция установлена ​​неправильно и может принимать только один параметр, а не массив, поэтому in_array() следует добавить в этой ситуации. В этом случае $term->name будет выводить несколько значений. Другая проблема заключается в том, что параметр флажка имени $options[off_woo_checkbox_field_2] является многомерным, поэтому следует добавить [] в другом, чтобы сохранить другие параметры, которые создает цикл WooCommerce.

<input type='checkbox' name='offwoo_settings[offwoo_checkbox_field_2][]'
<?php if(isset($options['offwoo_checkbox_field_2'])) { checked( in_array($term->name, $options['offwoo_checkbox_field_2']), true); }?> value='<?php echo $term->name; ?>'>
<label><?php echo $term->name; ?></label>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]