从Woocommerce 3的可变产品下拉列表中删除“选择选项”

时间:2018-07-04 22:41:37

标签: php wordpress woocommerce html-select product

我想从WooCommerce产品页面的“选项”后面的变体形式下拉列表中删除: WooCommerce "Select an option" issue

我发现很多应该起作用的代码,显然不起作用。可能已经过时了最新的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)。

4 个答案:

答案 0 :(得分:2)

正确的方法是使用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版上进行了测试

答案 1 :(得分:0)

只需放入功能文件

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

答案 2 :(得分:0)

将此代码添加到当前主题的 function.php 文件中。

extension UIApplication {
    func endEditing(_ force: Bool) {
        self.windows
            .filter{$0.isKeyWindow}
            .first?
            .endEditing(force)
    }
}

struct ResignKeyboardOnDragGesture: ViewModifier {
    var gesture = DragGesture().onChanged{_ in
        UIApplication.shared.endEditing(true)
    }
    func body(content: Content) -> some View {
        content.gesture(gesture)
    }
}

extension View {
    func resignKeyboardOnDragGesture() -> some View {
        return modifier(ResignKeyboardOnDragGesture())
    }
}

答案 3 :(得分:0)

如何通过CSS做到这一点?

.select2-results__options li:first-child {
   display: none;
}