dongyata3336 2019-01-31 15:30
浏览 431
已采纳

在WooCommerce中更改“选择选项”变体下拉标签

I try to change the value of "Select a option" to the attributes names. So in a dropdown where you could select the color it should be the name color as the first one. So far it worked with this code snippet

add_filter( 'woocommerce_dropdown_variation_attribute_options_args', 'cinchws_filter_dropdown_args', 10 );

function cinchws_filter_dropdown_args( $args ) {
    $var_tax = get_taxonomy( $args['attribute'] );
    $args['show_option_none'] = apply_filters( 'the_title', $var_tax->labels->name );
    return $args;
}

The Problem that I have now is that it shows "Product Color" or "Product Material", so it adds a product before the attribute value. How can I get only the Attribute Value?

Dropdown field

  • 写回答

1条回答 默认 最新

  • dounao5856 2019-01-31 16:12
    关注

    You can use wc_attribute_label() dedicated function to get the product attribute label name:

    add_filter( 'woocommerce_dropdown_variation_attribute_options_args', 'filter_dropdown_variation_args', 10 );
    function filter_dropdown_variation_args( $args ) {
        $args['show_option_none'] = apply_filters( 'the_title', wc_attribute_label( $args['attribute'] ) );
    
        return $args;
    }
    

    Code goes in function.php file of your active child theme (or active theme). Tested and works.

    OR you can use singular_name instead of name like:

    add_filter( 'woocommerce_dropdown_variation_attribute_options_args', 'filter_dropdown_variation_args', 10 );
    function filter_dropdown_variation_args( $args ) {
        $args['show_option_none'] = apply_filters( 'the_title', get_taxonomy( $args['attribute'] )->labels->singular_name );
    
        return $args;
    }
    

    Code goes in function.php file of your active child theme (or active theme). Tested and works.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?