es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo obtener una etiqueta limpia de los atributos del producto en el front-end de WooCommerce.

Así que, estoy añadiendo con éxito productos, variaciones con atributos, etc en un plugin que estoy escribiendo. El problema que tengo es que en el frontend los atributos aparecen como el nombre sin procesar (por ejemplo, panombre de variación) en lugar de un título bien presentado (por ejemplo, Nombre de Variación).

Estoy añadiendo el atributo al producto principal de la siguiente manera…

$product = wc<em>get</em>product($post<em>id);
$attribute = new WC</em>Product<em>Attribute();
$attribute->set</em>name('pa<em>nombre de variación</em>');
$attribute->set<em>options($attributes</em>array);
$attribute->set<em>visible(true);
$attribute->set</em>variation(true);
$attributes[] = $attribute;

$product->set_attributes($attributes);

$product->save();

Y añadiendo los datos a las variaciones individuales de esta manera:

update_post_meta($variation_id, 'attribute_pa_nombre_de_variacion', $args['Descripción']);

Tal vez me esté perdiendo algo obvio pero, ¿cómo puedo establecer un título claro para que no aparezca “pa_lo_que_sea” en el frontend?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para establecer un título claro para el atributo en lugar de mostrar “pa_variation_name” en la parte frontal, debe establecer la etiqueta del atributo usando el método set_label() de WC_Product_Attribute. El código actualizado para establecer la etiqueta del atributo sería el siguiente:

    $attribute = new WC_Product_Attribute();
    $attribute->set_name('pa_variation_name');
    $attribute->set_options($attributes_array);
    $attribute->set_visible(true);
    $attribute->set_variation(true);
    $attribute->set_label(__('Variation Name', 'text-domain'));
    $attributes[] = $attribute;
    
    $product->set_attributes($attributes);
    $product->save();
    

    Al establecer la etiqueta con la cadena “Variation Name”, el atributo se mostrará como “Variation Name” en la parte frontal en lugar de “pa_variation_name”.

Comments are closed.