Obtener la etiqueta de un checkbox ACF
Siento que esto debería ser fácil pero por alguna razón no puedo hacerlo funcionar.
Tengo varios colores similares pero distintos en una lista de productos. Necesito poder obtener la etiqueta para mostrar al usuario final (para que vean "naranja" en lugar de "m_orange") pero también necesito que el valor sea distinto para poder aplicar la clase apropiada al elemento.
orange : orange
m_orange : orange
purple : purple
m_purple : purple
w_purple : purple
Mi código:
<?php while ( $the_query->have_posts() ) : $the_query->the_post();
$color = get_field('color');
?>
<?php foreach($color as $color_list){echo "<li >$color_list <span class=\"color_text_slash\"> / </span> </li>";}?>
<?php foreach($color as $color_class){echo "<li class=\"$color_class\"></li>" ;}?>
Intenté seguir las instrucciones en http://www.advancedcustomfields.com/resources/field-types/checkbox/ pero no ha funcionado y no logro resolverlo.

Puedes probar esto
$field = get_field_object('color');
$colors = get_field('color'); // array de valores de colores seleccionados
foreach($colors as $color){
echo "color seleccionado: ". $color. " con etiqueta: " . $field['choices'][ $color ];
}
donde las etiquetas se obtienen mediante get_field_object
según el enlace que proporcionaste.
También podrías usar print_r()
o var_dump()
para verificar qué se almacena en las variables $field
y $colors
.

Tuve el mismo problema y lo resolví con chequeos usando print_r()
.
Prueba esto:
$field = get_field_object('color');
$colors = get_field('color');
foreach($colors as $key => $val) {
$label = $colors[$key];
echo 'Esta es tu etiqueta: '. $field['choices'][$label];
}
'choices' es donde se almacenan tus etiquetas
