用不同的自定义文本替换 Woocommerce 变体属性下拉列表中的默认 "Select Option" 文本

Replace default "Select Option" text in Woocommerce variation attribute dropdowns by different custom ones

我刚开始使用 Woocommerce,对可变产品的下拉 select 字段有疑问。在 woocommerce 中,当此下拉菜单中没有 selected 时,会显示 "Select Option" 文本。

我需要每个下拉 select 字段选项在尚未 select 编辑任何内容时显示不同的文本。

我发现这段代码用我想要的任何内容替换了标准 "Select Option" 文本,但它适用于所有下拉菜单 select 字段。

  function custom_woocommerce_product_add_to_cart_text($args){
 $args['show_option_none'] = __( 'Select Framed or Unframed Sizes', 'woocommerce' ); 
  return $args;
}

我注意到第一个下拉 select 字段的 ID 为 "type",第二个下拉字段的 ID 为 "size"。

我们可以更改上面的代码并按照以下方式进行操作吗:

我还可以强制第一个下拉列表始终显示所有选项吗?

假设我的第一个下拉列表有选项 A、B、C 和 D:

听起来很混乱,但我希望它是有道理的。

感谢任何帮助。

在 woocommerce 中,属性 ID(或 分类法)全部以 pa_ 作为 "p 开头产品 attribute,因此:

  • "Type"<select> html 标签应该有:id="pa_type"(但不是 id="type") ,
  • "Size"<select> html 标签应该有:id="pa_size"(但不是 id="size") .

现在您可以通过这种方式通过分类法块来定位每个属性:

add_filter( 'woocommerce_dropdown_variation_attribute_options_args', 'dropdown_variation_attribute_options', 10, 1 );
function dropdown_variation_attribute_options( $args ){

    // For attribute "Type"
    if( 'pa_type' == $args['attribute'] )
        $args['show_option_none'] = __( 'Select Framed or Unframed Types', 'woocommerce' );

    // For attribute "Sizes"
    if( 'pa_size' == $args['attribute'] )
        $args['show_option_none'] = __( 'Select Framed or Unframed Sizes', 'woocommerce' );

    return $args;
}

代码进入您的活动子主题(或活动主题)的 function.php 文件。

已测试并有效。


You are asking many different questions. Here I answer just one. It's the way on Whosebug.

在 WooCommerce 中一切皆有可能,这取决于您的知识、技能和花费的时间。

Your 2nd question is something advanced, complicated and a bit too broad.