Удалите «Выбрать опцию» из выпадающих списков различных продуктов в Woocommerce 3 - PullRequest
0 голосов
/ 05 июля 2018

Я бы хотел удалить из выпадающего списка вариантов на странице продукта WooCommerce следующую "опцию": WooCommerce

Я нашел много, по-видимому, не работающих кодов, которые должны выполнять эту работу. Вероятно, устарел до последней версии WooCommerce.

То, что я пробовал и частично работает:

add_filter( 'woocommerce_dropdown_variation_attribute_options_args', 'my_wc_filter_dropdown_args', 10 );
function my_wc_filter_dropdown_args( $args ) {
    $args['show_option_none'] = '';
    return $args;
}

Это работает, только когда я устанавливаю текст между '', а не пустой. Когда он добавляется в functions.php точно так же, как и выше, он остается без изменений и получает текст по умолчанию - «Выберите опцию», как на картинке. Я не уверен, что здесь не так. Я также пробовал «false» или «none», но не работал ни с одним из вариантов.

Если бы кто-нибудь мог мне помочь с этим, я был бы благодарен.

Я использую последнюю версию WP 4.9.6 и последнюю версию WooCommerce (независимо от того, какая это версия). Все обновлено до последней версии, даже PHP (7.2).

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

Просто поместите в файл функции

add_filter( 'woocommerce_dropdown_variation_attribute_options_args', 'wc_remove_options_text');
function wc_remove_options_text( $args ){
    $args['show_option_none'] = '';
    return $args;
}
0 голосов
/ 05 июля 2018

Правильный способ сделать это - использовать вместо этого woocommerce_dropdown_variation_attribute_options_html фильтр-хук. Ниже скриншот для обычного переменного продукта с выпадающими списками атрибутов по умолчанию:

enter image description here

Так что есть 2 разных случая:

1) Удаление этого html option полностью **:

add_filter( 'woocommerce_dropdown_variation_attribute_options_html', 'filter_dropdown_option_html', 12, 2 );
function filter_dropdown_option_html( $html, $args ) {
    $show_option_none_text = $args['show_option_none'] ? $args['show_option_none'] : __( 'Choose an option', 'woocommerce' );
    $show_option_none_html = '<option value="">' . esc_html( $show_option_none_text ) . '</option>';

    $html = str_replace($show_option_none_html, '', $html);

    return $html;
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.

Опция html полностью удалена, оставлена ​​только опция со значениями атрибута продукта:

enter image description here


2) Удалите только текст «Выберите опцию» (у вас будет опция без названия метки):

add_filter( 'woocommerce_dropdown_variation_attribute_options_html', 'filter_dropdown_option_html', 12, 2 );
function filter_dropdown_option_html( $html, $args ) {
    $show_option_none_text = $args['show_option_none'] ? $args['show_option_none'] : __( 'Choose an option', 'woocommerce' );
    $show_option_none_text = esc_html( $show_option_none_text );

    $html = str_replace($show_option_none_text, '', $html);

    return $html;
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.

enter image description here

Весь код протестирован в последней версии Woocommerce 3.4.x

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...