Я пытаюсь создать свой собственный плагин виджета Wordpress для продуктов woocommerce. поэтому у меня была некоторая кодировка, но я придерживался вопроса о сохранении выбранных/выбранных категорий.Как создать несколько флажков в widget Wordpress
public function form($instance) {
$instance = wp_parse_args((array) $instance, array('title' => '', 'select_product_categories' => ''));
$args = array('orderby' => 'name', 'order' => 'ASC', 'hide_empty' => true);
$show_pcategories = get_terms('product_cat', $args);
$title = strip_tags($instance['title']);
$select_product_categories = $instance['select_product_categories'];
<?php /* Select Categories Checkbox to display */ ?>
<p><label for="<?php echo $this->get_field_id('select_product_categories'); ?>">Select Product Category to display:</label><br>
<?php
foreach($show_pcategories as $category) {
?>
<label for="<?php echo $this->get_field_id('select_product_categories') . $category->term_id; ?>"><input id="<?php echo $this->get_field_id('select_product_categories') . $category->term_id; ?>" name="<?php echo $this->get_field_name('select_product_categories'); ?>[]" type="checkbox" value="<?php echo $category->name; ?>" <?php checked('1', $category->name); ?> /><?php echo $category->name; ?></label><br>
<?php
}
}
его извлечения всех категорий продуктов из WooCommerce, но когда я проверить некоторые категории и экономии ... ее не работает :(
любезно помочь мне ребята
======== =============================
РЕШЕНИЕ
я просто попытался, и теперь он работает отлично!
foreach($show_pcategories as $category) {
?>
<label><input id="<?php echo $this->get_field_id('select_product_categories') . $category->term_id; ?>" name="<?php echo $this->get_field_name('select_product_categories'); ?>[]" type="checkbox" value="<?php echo $category->term_id; ?>" <?php foreach ($select_product_categories as $checked) { checked($checked, $category->term_id, true); } ?>><?php echo $category->name; ?></label><br>
<?php
}
Я использовал цикл по каждому элементу для проверки ... а также определить переменную массив
$ select_product_categories = (массив) $ экземпляр [ 'select_product_categories'];
Как вы сохраняете значения в БД? Если у вас возникли проблемы с проверкой наличия флажка или нет, у вас есть два возможных решения: 1/'$ _POST ['x']' устанавливается тогда и только тогда, когда установлен флажок 'x'. 2/для каждого флажка с именем 'x' вы добавляете поле' hidden', также называемое 'x' со значением по умолчанию. Если флажок 'x' не был проверен, вы получите значение по умолчанию в' $ _POST ['x'] '. – Martin
извините, пожалуйста! но я не понимаю! –