Bartik romano
Me gustaría eliminar del menú desplegable de variaciones en la página del producto de WooCommerce la siguiente “opción”:
Encontré muchos códigos que aparentemente no funcionan y que deberían hacer el trabajo. Probablemente desactualizado a la última versión de WooCommerce.
Lo que probé y funciona parcialmente:
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;
}
Esto solo funciona cuando configuro un texto entre ”, no vacío. Cuando se agrega a functions.php exactamente como arriba, no cambia y se establece en el texto predeterminado – “Seleccione una opción” como en la imagen. No estoy seguro de lo que está mal aquí. También probé “falso” o “ninguno”, pero no funcionó con ninguna de las opciones.
Si alguien pudiera ayudarme con esto se lo agradecería.
Estoy usando el último WP 4.9.6 y el último de WooCommerce (cualquiera que sea la versión). Todo está actualizado a la última versión, incluso PHP (7.2).
LoicTheAztec
La forma correcta de hacerlo es usar woocommerce_dropdown_variation_attribute_options_html
gancho de filtro en su lugar. Debajo de la captura de pantalla para el producto variable normal con menús desplegables de atributos predeterminados:
Entonces hay 2 casos diferentes:
1) Eliminando este html option
completamente**:
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;
}
El código va en el archivo function.php de su tema secundario activo (o tema activo). Probado y funciona.
La opción html se elimina por completo, manteniendo solo la opción con los valores de los atributos del producto:
2) Eliminar solo el texto “Seleccione una opción” (tendrá una opción sin nombre de etiqueta):
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;
}
El código va en el archivo function.php de su tema secundario activo (o tema activo). Probado y funciona.
Todo el código se prueba en la última versión de Woocommerce 3.4.x
-
Gracias, de hecho, esto elimina el texto “Elegir una opción”. Pero la forma en que se vería y funcionaría mejor sería eliminar la línea por completo. Ahora se ve así: i.imgur.com/qjf6SJF.png ¿Es posible quitarlo así? Gracias por adelantado.
– Roman Bartik
4 de julio de 2018 a las 23:28
-
@RomanBartík Hay 2 fragmentos de código: el primero elimine la línea de opción html por completo, tal como lo pides… El segundo quita solo el texto. Pruebe el primero, verá que funciona en la última versión de Woocommerce.
– LoicTheAztec
04/07/2018 a las 23:40
-
Lo siento, no noté tus capturas de pantalla cuando la página se cargó sin ellas, así que fue un poco confuso. Todo funciona como dijiste. Necesito la primera versión que publicaste, así que la usé, pero ambas funcionan como dices. Gracias de nuevo y disculpa el malentendido.
– Roman Bartik
5 de julio de 2018 a las 0:06
-
@LoicTheAztec Tengo un problema al tratar de hacer que el caso 1 funcione, solo funciona parcialmente, se elimina el texto de elegir una opción y la primera opción real se selecciona correctamente, pero el problema es que el texto también se elimina de esta opción. Usando la última versión de woocomerce
– Richard Misenčík
13 de noviembre de 2018 a las 12:00
-
@RichardMišenčík He probado el código en la última versión de WC y todavía funciona perfectamente. Podría estar relacionado con tu idioma, supongo…
– LoicTheAztec
13 de noviembre de 2018 a las 14:15
fuerte
Agrega este código a función.php archivo de su tema actual.
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;
}
Simplemente coloque el archivo de función
add_filter( 'woocommerce_dropdown_variation_attribute_options_args', 'wc_remove_options_text');
function wc_remove_options_text( $args ){
$args['show_option_none'] = '';
return $args;
}
¿Qué tal hacer esto por CSS?
.select2-results__options li:first-child {
display: none;
}