3

I want to add content after variation name.

I find this hook and saw it's working before, but no on my test it's not :(

I want to ask, is there another hook/working method I can use to add content?

add_filter('woocommerce_attribute_label', 'custom_attribute_label', 10, 3);
function custom_attribute_label($label, $name, $product){
    $taxonomy = 'pa_' . $name;

    if ($taxonomy == 'pa_size')
        $label .= '<div class="custom-label">' . __('MY TEXT', 'woocommerce') . '</div>';

    return $label;
}

Code reference:
Adding a custom text next to a specific product attribute label in WooCommerce

Ruvee
  • 8,611
  • 4
  • 18
  • 44

1 Answers1

5

If you use $label variable, it will return the name without "pa_" prefix. Some variations have "pa_" prefixes and some don't.

So you don't need to create an extra variable (i.e $taxonomy). Just use $label variable, like this:

add_filter('woocommerce_attribute_label', 'custom_attribute_label', 10, 3);

function custom_attribute_label($label, $name, $product)
{

    if ('Logo' == $label) 
    {
        $label .= '<div class="custom-label">' . __('MY TEXT', 'woocommerce') . '</div>';
    }

    return $label;
}

enter image description here


You could use switch statement for checking multiple conditions like this:

add_filter('woocommerce_attribute_label', 'custom_attribute_label', 10, 3);

function custom_attribute_label($label, $name, $product)
{

    switch ($label) 
    {
        case 'Logo':
            $label .= '<div class="custom-label">' . __('MY TEXT AFTER LOGO', 'woocommerce') . '</div>';
            break;
        case 'Color':
            $label .= '<div class="custom-label">' . __('MY TEXT AFTER COLOR', 'woocommerce') . '</div>';
            break;
    }

    return $label;
}

enter image description here

Ruvee
  • 8,611
  • 4
  • 18
  • 44