Cómo obtener todos los atributos de productos de WooCommerce, taxonomías, slugs y nombres

2 minutos de lectura

avatar de usuario
amir ramezanpour

En WooCommerce estoy tratando de agregar un campo personalizado a todos los atributos del producto como un complemento…

Por el momento, en el siguiente código, puedo agregar un campo personalizado a una taxonomía:

function pippin_taxonomy_add_new_meta_field() {
// this will add the custom meta field to the add new term page
?>
<div class="form-field">
    <label for="term_meta[custom_term_meta]"><?php _e( 'Example meta field', 'pippin' ); ?></label>
    <input type="text" name="term_meta[custom_term_meta]" id="term_meta[custom_term_meta]" value="">
    <p class="description"><?php _e( 'Enter a value for this field','pippin' ); ?></p>
</div>
    <?php
}

add_action( 'pa_flavor_add_form_fields', 'pippin_taxonomy_add_new_meta_field', 10, 2 );

// Edit term page
function pippin_taxonomy_edit_meta_field($term) {

// put the term ID into a variable
$t_id = $term->term_id;

// retrieve the existing value(s) for this meta field. This returns an array
$term_meta = get_option( "taxonomy_$t_id" ); ?>
<tr class="form-field">
    <th scope="row" valign="top"><label for="term_meta[custom_term_meta]"><?php _e( 'Example meta field', 'pippin' ); ?></label></th>
    <td>
        <input type="text" name="term_meta[custom_term_meta]" id="term_meta[custom_term_meta]" value="<?php echo esc_attr( $term_meta['custom_term_meta'] ) ? esc_attr( $term_meta['custom_term_meta'] ) : ''; ?>">
        <p class="description"><?php _e( 'Enter a value for this field','pippin' ); ?></p>
    </td>
</tr>
<?php
}
add_action( 'pa_flavor_edit_form_fields', 'pippin_taxonomy_edit_meta_field', 10, 2 );

¿Cómo obtener todos los atributos de productos de WooCommerce, taxonomías, slugs (y nombres)?

De esta manera, podría crear esos campos personalizados dinámicamente para todos los atributos de productos existentes.

avatar de usuario
LoicTheAztec

Puede obtener la taxonomía de atributos del producto babosas (y taxonomía nombres) mediante el uso:

  1. Antes de la versión 3.6 de WooCommerce con wc_get_attribute_taxonomies() función dedicada:

     // Get an array of product attribute taxonomies slugs
     $attributes_tax_slugs = array_keys( wp_list_pluck( wc_get_attribute_taxonomies(), 'attribute_label', 'attribute_name' ) );
    
     // Get an array of product attribute taxonomies names (starting with "pa_")
     $attributes_tax_names = array_filter( array_map( 'wc_attribute_taxonomy_name', $attribute_taxonomies ));
    
  2. Desde WooCommerce versión 3.6+ con wc_get_attribute_taxonomy_labels() función dedicada:

     // Get an array of product attribute taxonomies slugs
     $attributes_tax_slugs = array_keys( wc_get_attribute_taxonomy_labels() );
    
     // Get an array of product attribute taxonomies names (starting with "pa_")
     $attributes_tax_names = array_filter( array_map( 'wc_attribute_taxonomy_name', $attribute_taxonomies ));
    

Documentación oficial:

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad