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

时间:2013-12-24 07:27:58

标签: woocommerce

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

5 个答案:

答案 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文件来实现。

  1. 创建一个子主题(总是推荐)如果你没有并激活它
  2. 从/ wp-content / plugins / woocommerce / templates / single-product / add-to-cart下载variable.php
  3. 打开variable.php并搜索<option value=""><?php echo __( 'Choose an option', 'woocommerce' ) ?>&hellip;</option>
  4. Choose an option替换为您需要的任何文字并保存文件
  5. 在名为“woocommerce”
  6. 的子主题下创建一个新目录
  7. 在其中创建单品 - &gt;添加到购物车子目录并上传以前编辑过的variable.php文件。
  8. 如果您需要删除标签并将其添加为默认选项值,请替换;

        <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>
    

    使用;

        <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;
}