Woocommerce 更改产品页面上的“选择选项”文本

Woocommerce 更改产品页面上的“选择选项”文本,woocommerce,Woocommerce,在my woo商务网站的产品页面上。我想将下拉菜单“选择选项”中的文本更改为另一种语言。有没有办法做到这一点。我不太了解“下拉菜单中的文本”部分,选择一个选项“转换成另一种语言”。但是,如果您只需要将文本更改为类似“Select”的内容,或者使用相关的变体标签作为默认选择选项,您可以通过覆盖Woocommerce default variable.php文件来实现这一点 如果您没有子主题,请创建一个子主题并激活它 从/wp-content/plugins/woocommerce/template

在my woo商务网站的产品页面上。我想将下拉菜单“选择选项”中的文本更改为另一种语言。有没有办法做到这一点。

我不太了解“下拉菜单中的文本”部分,选择一个选项“转换成另一种语言”。但是,如果您只需要将文本更改为类似“Select”的内容,或者使用相关的变体标签作为默认选择选项,您可以通过覆盖Woocommerce default variable.php文件来实现这一点

如果您没有子主题,请创建一个子主题并激活它 从/wp-content/plugins/woocommerce/templates/single-product/add-to-cart下载variable.php 打开variable.php并搜索… 用所需的任何文本替换选择选项并保存文件 在名为“woocommerce”的子主题下创建一个新目录 在它里面创建单个产品->添加到购物车子目录,并上传以前编辑的variable.php文件。 如果需要删除标签并将其添加为默认选项值,请替换

    <td class="label"><label for="<?php echo sanitize_title($name); ?>"><?php echo wc_attribute_label( $name ); ?></label></td>
    <td class="value"><select id="<?php echo esc_attr( sanitize_title( $name ) ); ?>" name="attribute_<?php echo sanitize_title( $name ); ?>">
    <option value=""><?php echo __( 'Choose an option', 'woocommerce' ) ?>&hellip;</option>


就这样

AGMG的答案不再正确。要更改下拉列表的默认选项,现在可以挂接到

例如

我的用例是将其更改为变体组名称,例如“大小”或“颜色”

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

另一种方法是使用html钩子:woocommerce\u下拉列表\u变体\u属性\u选项\u html

首先在functions.php中挂接此过滤器并添加一个var_转储,以便了解现有html是什么,如下所示:

function filter_woocommerce_dropdown_variation_attribute_options_html( $html, $args ) { 

  var_dump($html);

  return $html; 
}; 


add_filter( 'woocommerce_dropdown_variation_attribute_options_html', 'filter_woocommerce_dropdown_variation_attribute_options_html', 10, 2 );
在此之后,只需将html替换为您实际需要的内容:

function filter_woocommerce_dropdown_variation_attribute_options_html( $html, $args ) 
  { 
    $html = "//my replacement html with text in foreign language";
    return $html; 
}; 

add_filter( 'woocommerce_dropdown_variation_attribute_options_html', 'filter_woocommerce_dropdown_variation_attribute_options_html', 10, 2 );

这应该就够了。

@sobeit这个答案可能对你不合适。这是因为并非所有属性都存储为分类法。但实际上不需要获取属性,因为在args数组中已经有了标签

这是更新后的代码

add_filter( 'woocommerce_dropdown_variation_attribute_options_args','my_wc_filter_dropdown_args') );

function wc_filter_dropdown_args( $args ) {
        global $product;
        $args['show_option_none'] = __( 'Choose', 'your-theme-name' ) . ' ' . strtolower(wc_attribute_label($args['attribute'],$product));

        return $args;
    }

顺便说一句,我本想把这篇文章作为评论发表,但我没有足够的声誉去做这件事

这对改变文本有很大的帮助,就像一个魔咒一样!!请在堆栈溢出时使用英语。
function filter_woocommerce_dropdown_variation_attribute_options_html( $html, $args ) 
  { 
    $html = "//my replacement html with text in foreign language";
    return $html; 
}; 

add_filter( 'woocommerce_dropdown_variation_attribute_options_html', 'filter_woocommerce_dropdown_variation_attribute_options_html', 10, 2 );
add_filter( 'woocommerce_dropdown_variation_attribute_options_args','my_wc_filter_dropdown_args') );

function wc_filter_dropdown_args( $args ) {
        global $product;
        $args['show_option_none'] = __( 'Choose', 'your-theme-name' ) . ' ' . strtolower(wc_attribute_label($args['attribute'],$product));

        return $args;
    }
    // Меняем текст "выбрать опцию" на странице вариативного товара, на название атрибута
add_filter( 'woocommerce_dropdown_variation_attribute_options_args', 'my_wc_filter_dropdown_args', 10 );
function my_wc_filter_dropdown_args( $args ) {
    $variation_tax = get_taxonomy( $args['attribute'] );
    $args['show_option_none'] = str_replace('Товар ',  '', apply_filters( 'the_title', $variation_tax->labels->name )); // Вырезаем слово "Товар " из названия атрибута
    return $args;
}