我想从“选项”后面的WooCommerce产品页面的下拉列表中删除:
我发现很多,显然不是工作代码应该做的工作。可能已经过时了最新的WooCommerce版本。
我尝试过并且部分工作:
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'] = '';
return $args;
}
这只适用于我在''之间设置一些文本,而不是空的。当它完全像上面那样添加到functions.php中时,它没有改变并设置为默认文本 - 如图所示“选择一个选项”。我不确定这里有什么问题。我也试过“假”或“无”,但没有使用任何一个选项。
如果有人能帮助我,我将不胜感激。
我正在使用最新的WP 4.9.6和最新的WooCommerce(无论它是什么版本)。一切都更新到最新版本,甚至PHP(7.2)。
正确的方法是使用woocommerce_dropdown_variation_attribute_options_html
过滤器钩子代替。在具有默认属性下拉列表的常规变量产品的屏幕截图下方:
所以有两种不同的情况:
1)完全删除这个html option
**:
add_filter( 'woocommerce_dropdown_variation_attribute_options_html', 'filter_dropdown_option_html', 12, 2 );
function filter_dropdown_option_html( $html, $args ) {
$show_option_none_text = $args['show_option_none'] ? $args['show_option_none'] : __( 'Choose an option', 'woocommerce' );
$show_option_none_html = '<option value="">' . esc_html( $show_option_none_text ) . '</option>';
$html = str_replace($show_option_none_html, '', $html);
return $html;
}
代码位于活动子主题(或活动主题)的function.php文件中。经过测试和工作。
完全删除html选项,仅保留产品属性值的选项:
2)仅删除文本“选择一个选项”(您将有一个没有标签名称的选项):
add_filter( 'woocommerce_dropdown_variation_attribute_options_html', 'filter_dropdown_option_html', 12, 2 );
function filter_dropdown_option_html( $html, $args ) {
$show_option_none_text = $args['show_option_none'] ? $args['show_option_none'] : __( 'Choose an option', 'woocommerce' );
$show_option_none_text = esc_html( $show_option_none_text );
$html = str_replace($show_option_none_text, '', $html);
return $html;
}
代码位于活动子主题(或活动主题)的function.php文件中。经过测试和工作。
所有代码都在最新的Woocommerce 3.4.x版上进行测试
只需输入功能文件即可
add_filter( 'woocommerce_dropdown_variation_attribute_options_args', 'wc_remove_options_text');
function wc_remove_options_text( $args ){
$args['show_option_none'] = '';
return $args;
}