Я новичок в php и пытаюсь отфильтровать массив полей, чтобы он содержал только те поля, которые имеют обязательные свойства.
В javascript я бы сделал это просто:
fields.filter(field => field.required)
но я понятия не имею, как это сделать в php.
Я довольно новичок в синтаксисе php, и мне не удалось реализовать array_filter. Я пытаюсь отредактировать шаблон woocommerce, чтобы показывать только обязательные поля.
Вот что имеет каждое поле:
$fields['billing']['billing_email'] = array(
'label' => __('Email', 'woocommerce'),
'placeholder' => _x('EMAIL', 'placeholder', 'woocommerce'),
'required' => true,
'clear' => true
);
Массив $ fields должен содержать только те объекты, для которых требуется = true
foreach ( $fields as $key => $field ) {
//billing style argument fields. start
$key_gap_list = array('billing_last_name', 'billing_company', 'billing_country', 'billing_address_1', 'billing_address_2', 'billing_city', 'billing_state', 'billing_phone');
if (!isset($field['placeholder']) && isset($field['label'])) {
$field['placeholder'] = $field['label'];
}
if (isset($field['required']) && $field['required']) {
$field['placeholder'] .= ' *';
}
if (isset($field['class'])) {
$findClass = array_search('form-control', $field['class']);
if ($findClass) {
unset($field['class'][$findClass]);
}
}
$field['input_class'] = array('form-control');
unset($field['label']);
//billing style argument fields. end
if ( isset( $field['country_field'], $fields[ $field['country_field'] ] ) ) {
$field['country'] = $checkout->get_value( $field['country_field'] );
}
woocommerce_form_field( $key, $field, $checkout->get_value( $key ) );
if ($key == 'billing_last_name') {
echo '<div class="clear"></div>';
}
}