Функция WC_DROPDOWN_VARIATION_ATTRIBUTE_OPTIONS() в WooCommerce
Функция WC_DROPDOWN_VARIATION_ATTRIBUTE_OPTIONS() предназначена для вывода списка атрибутов вариаций, которые используются в формах корзины.
Хуки функции
Эта функция использует несколько хуков, которые могут быть полезны для вашей разработки:
woocommerce_dropdown_variation_attribute_options_argswoocommerce_variation_option_namewoocommerce_dropdown_variation_attribute_options_html
Возврат
Функция ничего не возвращает (null).
Шаблон использования
Вот пример HTML-кода формы, в которую можно вставить вызов этой функции:
Использование функции
Функция вызывается следующим образом:
wc_dropdown_variation_attribute_options($args);
Параметры функции
Эта функция принимает массив параметров. Возможные ключи массива:
- options (массив): Массив с произвольными вариантами. Значение по умолчанию: false
- attribute (строка): Название атрибута, для которого вы хотите сгенерировать варианты. Значение по умолчанию: false
- product (объект): Объект продукта WooCommerce. Значение по умолчанию: false
- selected (строка): Выбранный вариант. Значение по умолчанию: false
- name (строка): Название атрибута таксономии. Значение по умолчанию: ''
- id (строка): Значение для атрибута id тега select. Значение по умолчанию: ''
- class (строка): Значение для атрибута class тега select. Значение по умолчанию: ''
- show_option_none (строка): Текст для отображения, если нет выбранного варианта. Значение по умолчанию: __('Выберите вариант', 'woocommerce')
Пример
$args = array(
'options' => $options,
'attribute' => $attribute_name,
'product' => $product,
'selected' => $selected,
);
wc_dropdown_variation_attribute_options($args);
Упрощенная версия шаблона
Вот упрощенный вариант кода формы, который показывает, как можно использовать данную функцию в вашем шаблоне:
Изменения
- С версии 2.4.0: Функция была добавлена.
Код функции
Вот код самой функции wc_dropdown_variation_attribute_options, которая находится в файле woocommerce/includes/wc-template-functions.php:
function wc_dropdown_variation_attribute_options($args = array()) {
$args = wp_parse_args(
apply_filters('woocommerce_dropdown_variation_attribute_options_args', $args),
array(
'options' => false,
'attribute' => false,
'product' => false,
'selected' => false,
'required' => false,
'name' => '',
'id' => '',
'class' => '',
'show_option_none' => __('Выберите вариант', 'woocommerce'),
)
);
// Получаем выбранное значение.
if (false === $args['selected'] && $args['attribute'] && $args['product'] instanceof WC_Product) {
$selected_key = 'attribute_' . sanitize_title($args['attribute']);
$args['selected'] = isset($_REQUEST[$selected_key]) ? wc_clean(wp_unslash($_REQUEST[$selected_key])) : $args['product']->get_variation_default_attribute($args['attribute']);
}
// Обработка вариантов и атрибутов.
$options = $args['options'];
$product = $args['product'];
$attribute = $args['attribute'];
$name = $args['name'] ? $args['name'] : 'attribute_' . sanitize_title($attribute);
$id = $args['id'] ? $args['id'] : sanitize_title($attribute);
$class = $args['class'];
$required = (bool)$args['required'];
$show_option_none = (bool)$args['show_option_none'];
$show_option_none_text = $args['show_option_none'] ? $args['show_option_none'] : __('Выберите вариант', 'woocommerce');
if (empty($options) && !empty($product) && !empty($attribute)) {
$attributes = $product->get_variation_attributes();
$options = $attributes[$attribute];
}
$html = '';
echo apply_filters('woocommerce_dropdown_variation_attribute_options_html', $html, $args);
}
Теперь у вас есть полное представление о том, как использовать функцию WC_DROPDOWN_VARIATION_ATTRIBUTE_OPTIONS() в WooCommerce. Это поможет вам создавать более удобные формы для выбора вариантов продуктов на вашем сайте.