Como adicionar atributos de produtos WooCommerce com variações: 2 métodos

Publicados: 2021-05-25

Deseja criar atributos de produto com diferentes variações? Você veio ao lugar certo. Neste guia, mostraremos como adicionar atributos de produtos WooCommerce com variações .

O que são atributos do WooCommerce?

No WooCommerce, você pode adicionar informações aos seus produtos por meio de atributos . Esses atributos dependem do produto. Por exemplo, atributos comuns para itens de vestuário são tamanho e cor, enquanto para um laptop podem ser tamanho da tela, memória RAM e capacidade de armazenamento.

O interessante sobre os atributos é que eles são globais. Em vez de aplicá-los a cada produto, basta criá-los e adicioná-los a diferentes produtos.

Os atributos são essenciais para:

  • Produtos variáveis : Antes de criar produtos variáveis, você deve definir atributos para eles. Isso permite que você adicione variações do produto.
  • Filtrando produtos : Uma maneira comum de filtrar é baseada em atributos. Por exemplo, um usuário pode estar procurando por um laptop com tela de 15 polegadas.

Além disso, você também pode criar atributos de produto padrão. Para mais informações sobre isso, confira este guia completo.

Agora que entendemos melhor os atributos, vamos ver como adicionar atributos de produtos com variações no WooCommerce.

Como adicionar atributos de produtos WooCommerce com variações

Existem duas maneiras principais de adicionar atributos de produtos com variações no WooCommerce:

  1. Do painel do WooCommerce
  2. Programaticamente

Vamos dar uma olhada nas duas opções.

1) Crie atributos de produtos com variações do painel WooCommerce

A maneira mais fácil de adicionar um atributo no WooCommerce é na seção Atributos . Para fazer isso, em seu painel, vá para Produtos > Atributos. Lá você terá que escolher um nome e slug e clicar no botão “ Adicionar atributo ” para criar um novo atributo de produto.

Como adicionar atributos de produtos WooCommerce com variações

Como mencionado anteriormente, os atributos são globais, portanto, o novo atributo estará disponível para todos os produtos da sua loja.

Depois de adicionar o atributo do produto, você deve adicionar alguns termos que se tornarão variações de determinados produtos.

Por exemplo, se o atributo for o tamanho da tela, os diferentes tamanhos (13 polegadas, 15 polegadas, 17 polegadas) serão os termos.

Dessa forma, você pode combinar os diferentes atributos de cada produto e criar diferentes variações. Por exemplo, você pode obter um laptop vermelho de 13 polegadas, um laptop azul de 15 polegadas e assim por diante.

Como você pode ver, adicionar atributos e variações no painel do WooCommerce é bastante fácil. No entanto, pode ser demorado se você precisar criar muitas variações. Para criar atributos com variações em massa e gerenciar um grande número de atributos, você pode usar um pouco de codificação.

Vamos dar uma olhada em como adicionar atributos de produto com variações no WooCommerce programaticamente .

2. Como criar atributos de produtos com variações de forma programática

Se você tiver habilidades de codificação, poderá adicionar atributos de produto e suas variações de forma programática. Essa é uma ótima opção se você deseja economizar tempo ao criar atributos, pois pode adicioná-los em massa.

NOTA : Como editaremos alguns arquivos principais, antes de começar, recomendamos:

  • Crie um backup completo do seu site para poder restaurá-lo se algo der errado
  • Crie um tema filho : você pode instalar qualquer um desses plugins ou confira este guia para criar um. Dessa forma, você não perderá suas personalizações ao atualizar seu tema para uma nova versão.

Observe que você deve inserir seu código personalizado no arquivo functions.php do seu tema filho.

Depois de fazer o backup do seu site e criar o seu tema filho, no seu painel do WordPress vá para Aparência > Personalizar e procure o arquivo functions.php na coluna da direita. Em seguida, cole o seguinte código no final do arquivo.

Script PHP completo

Este é o script completo, na próxima seção, vamos dividi-lo em partes e explicar o que cada parte faz.

 add_action('admin_init', 'QuadLayers_add_product_attributes');

function QuadLayers_add_product_attributes(){
    $atts=matriz(
        'size'=>array('XL','Pequeno'),
        'color'=>array('marrom','cinza','amarelo'),   
    ); 
    foreach ($atts as $chave => $valores) { 
       new add_attribute($chave,$valores); 
    }
}

classe add_attribute{   
     /*
     * Registre uma classe global de atributo de produto woocommerce.
     *
     * @param str $nam | nome do atributo
     * @param arr $vals | variedade de variações
     * 
     */
    função pública __construct($nam,$vals){

                $attrs = array();      
                $atributos = wc_get_attribute_taxonomias();                          
                    foreach ($atributos como $chave => $valor) {
                        array_push($attrs,$attributes[$key]->attribute_name);                    
                    }              
               if (! in_array( $nam, $attrs)) {            
                    $args = array(
                        'id' => '',
                        'slug' => $nam,
                        'nome' => __( $nam, 'woocommerce' ),
                        'tipo' => 'selecionar',
                        'pedido por' => 'menu_pedido',
                        'has_archives' => falso,
                        'limite' => 1,
                        'is_in_stock' => 1
                    );                    
                   return wc_create_attribute( $args ); 
                }               
               $this->add_var($nam,$vals);
    }

    função pública add_var($nam,$vals){  
        $taxonomia = 'pa_'.$nam;      
        $term_slug = sanitizar_title($nam); 
        // Verifica se o termo existe e se não o cria (e obtém o ID do termo).
        for ($ff=0; $ff term_id;
            }
        }
    }
}

Vale a pena notar que este script não removerá nenhum atributo existente, apenas adicionará novos. E se os atributos que você está tentando adicionar já estiverem lá, o script não fará nada.

Além disso, observe que, para este exemplo, estamos adicionando alguns atributos e termos. Você precisa editar o array abaixo e criar seus próprios atributos.

 function QuadLayers_add_product_attributes(){
    $atts=matriz(
        'new-attribute'=>array('à parte','ao lado','longo','nenhum','curto'),        
    ); 

Depois disso, vá para Produtos > Atributos no seu painel de administração. Se tudo correu bem, você verá os atributos e termos que acabou de adicionar com o script PHP.

Variações de atributos do produto

Se você não conseguir ver as variações, basta recarregar a página para que elas possam ser preenchidas.

Além disso, os atributos também estarão disponíveis para configurar variações de produtos na página do editor de produtos:

atributos agora também estarão disponíveis para definir variações de produtos,

E é isso! Agora você pode simplesmente editar o script PHP e adicionar seus próprios atributos e variações do produto WooCommerce. Você pode até mesmo atualizá-lo dinamicamente aplicando lógica condicional.

Como funciona o roteiro?

Até agora, mostramos um script para adicionar atributos de produtos WooCommerce com variações à sua loja. Agora vamos dividi-lo, para que você possa entender melhor como ele funciona e personalizá-lo.

As principais seções do script são:

O gancho
 add_action('admin_init', 'QuadLayers_add_product_attributes');

function QuadLayers_add_product_attributes(){
    $atts=matriz(
        'size'=>array('XL','Pequeno'),
        'color'=>array('marrom','cinza','amarelo'),   
    ); 
    foreach ($atts as $chave => $valores) { 
       new add_attribute($chave,$valores); 
    }
}

Usamos o gancho admin_init() para iniciar o código. Você pode usar vários outros ganchos aqui, mas no nosso caso, gostamos do desempenho do script usando este.

Na função hooked, definimos nossos valores e variações de atributos em um único array multidimensional. O loop foreach() criará um atributo para cada um dos elementos do array principal.

Dentro do loop, o atributo é criado pela nossa classe add_attribute(); .

A classe

Criamos uma classe OOP que é responsável por criar o atributo e adicionar algumas variações a ele. Isso é feito em uma única execução cada vez que a classe é instanciada, usando o new add_attribute() na seção acima.

 classe add_attribute{   
    função pública __construct($nam,$vals){
                $attrs = array();      
                $atributos = wc_get_attribute_taxonomias();                          
                    foreach ($atributos como $chave => $valor) {
                        array_push($attrs,$attributes[$key]->attribute_name);                    
                    }              
               if (! in_array( $nam, $attrs)) {            
                    $args = array(
                        'id' => '',
                        'slug' => $nam,
                        'nome' => __( $nam, 'woocommerce' ),
                        'tipo' => 'selecionar',
                        'pedido por' => 'menu_pedido',
                        'has_archives' => falso,
                        'limite' => 1,
                        'is_in_stock' => 1
                    );                    
                   return wc_create_attribute( $args ); 
                }               
               $this->add_var($nam,$vals);
    }

A primeira função é uma construct() e cria o atributo usando a wc_create_attribute() WooCommerce, enquanto também chama a segunda função: add_var()

 função pública add_var($nam,$vals){  
        $taxonomia = 'pa_'.$nam;      
        $term_slug = sanitizar_title($nam); 
        // Verifica se o termo existe e se não o cria (e obtém o ID do termo).
        for ($ff=0; $ff < contagem($vals) ; $ff++) {
            if( ! term_exists( $vals [ $ff ] , $taxonomy ) ){ $term_data = wp_insert_term($vals [ $ff ] , $taxonomy ); $term_id = $term_data['term_id']; } else { $term_id = get_term_by( 'nome', $vals [ $ff ] , $taxonomy )->term_id; } } }

A segunda função add_var() adicionará todas as variações incluídas no array original para o atributo que também passou pelas funções.

Conclusão

Em resumo, os atributos do produto permitem criar produtos variáveis ​​e ajudam os usuários a filtrar produtos com base em determinados recursos.

Neste guia, vimos duas maneiras diferentes de adicionar atributos de produtos com variações no WooCommerce:

  1. Do painel de administração
  2. Programaticamente

Criar atributos a partir do painel do WooCommerce é fácil. No entanto, pode ser demorado se você precisar adicionar muitos atributos para vários produtos.

Como alternativa, se você tiver habilidades de codificação, poderá criá-las programaticamente. Este é um método mais avançado que permite adicionar atributos de produto em massa. O script que usamos neste post é totalmente testado e funciona, então fique à vontade para tomá-lo como base e personalizá-lo. No entanto, lembre-se de que ele foi projetado para ser usado em um único atributo de upload. Não recomendamos que você o implante permanentemente na produção.

Se você receber um erro ao tentar executar o script, não se preocupe. Isso geralmente acontece porque você está na página de listagem de atributos. A maneira correta de atualizar o script é recarregando a página de permalink do painel de administração do WordPress.

Para obter mais informações sobre como adicionar corretamente os produtos WooCommerce de forma programática e no painel de administração, consulte este guia.

Você criou atributos de produto em sua loja? Qual método você usou? Deixe-nos saber nos comentários abaixo!