在我的商业网站的产品页面上。我想将下拉菜单“选择一个选项”中的文本更改为另一种语言。有没有办法做到这一点。
答案 0 :(得分:5)
AGMG的答案不再正确。要更改下拉列表的默认选项,您现在可以连接到woocommerce_dropdown_variation_attribute_options_args
E.g。
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'] = 'Select an option';
return $args;
}
我的用例是将其更改为变体组名称(例如“尺寸”或“颜色”)。
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;
}
答案 1 :(得分:2)
我在下拉菜单中找不到“文本”部分'选择'成为另一种语言的选项'。但是,如果您只需要将文本更改为“选择”或使用相关变体标签作为默认选择选项,则可以通过覆盖Woocommerce默认variable.php
文件来实现。
variable.php
variable.php
并搜索<option value=""><?php echo __( 'Choose an option', 'woocommerce' ) ?>…</option>
Choose an option
替换为您需要的任何文字并保存文件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' ) ?>…</option>
使用;
<td class="label"><label for="<?php echo sanitize_title($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 wc_attribute_label( $name ); ?></option>
就是这样!
答案 2 :(得分:0)
执行此操作的另一种方法是使用html挂钩:woocommerce_dropdown_variation_attribute_options_html
首先将这个过滤器挂在functions.php中,并添加一个var_dump(),这样您就知道现有的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 );
应该可以解决问题。
答案 3 :(得分:0)
@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;
}
P.S。我本来可以将其发布为评论,但是我没有足够的声誉来做到这一点。
答案 4 :(得分:0)
// Меняем текст "выбрать опцию" на странице вариативного товара, на название атрибута
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;
}