Cum să adăugați atribute ale produsului WooCommerce cu variații: 2 metode

Publicat: 2021-05-25

Doriți să creați atribute de produs cu diferite variante? Ai venit la locul potrivit. În acest ghid, vă vom arăta cum să adăugați atribute ale produsului WooCommerce cu variații .

Care sunt atributele WooCommerce?

În WooCommerce, puteți adăuga informații la produsele dvs. prin intermediul atributelor . Aceste atribute depind de produs. De exemplu, atributele comune pentru articolele de îmbrăcăminte sunt dimensiunea și culoarea, în timp ce pentru un laptop pot fi dimensiunea ecranului, memoria RAM și capacitatea de stocare.

Lucrul interesant despre atribute este că sunt globale. În loc să le aplicați fiecărui produs, pur și simplu le creați și le adăugați la diferite produse.

Atributele sunt esențiale pentru:

  • Produse variabile : Înainte de a crea produse variabile, trebuie să definiți atribute pentru acestea. Acest lucru vă permite să adăugați variante ale produsului.
  • Filtrarea produselor : o modalitate obișnuită de filtrare se bazează pe atribute. De exemplu, un utilizator poate căuta un laptop cu ecran de 15 inchi.

În plus, puteți crea și atribute implicite ale produsului. Pentru mai multe informații despre asta, consultați acest ghid complet.

Acum că avem o mai bună înțelegere a atributelor, să vedem cum să adăugați atribute ale produsului cu variații în WooCommerce.

Cum să adăugați atribute ale produsului WooCommerce cu variații

Există două moduri principale de a adăuga atribute de produs cu variații în WooCommerce:

  1. Din tabloul de bord WooCommerce
  2. Din punct de vedere programatic

Să aruncăm o privire la ambele opțiuni.

1) Creați atribute ale produsului cu variații din tabloul de bord WooCommerce

Cel mai simplu mod de a adăuga un atribut în WooCommerce este din secțiunea Atribute . Pentru a face acest lucru, în tabloul de bord, accesați Produse > Atribute. Acolo va trebui să alegeți un nume și un melc și să faceți clic pe butonul „ Adăugați atribut ” pentru a crea un nou atribut de produs.

Cum să adăugați atribute ale produsului WooCommerce cu variații

După cum am menționat anterior, atributele sunt globale, astfel încât noul atribut va fi disponibil pentru toate produsele din magazinul dvs.

După adăugarea atributului produs, trebuie să adăugați niște termeni care vor deveni variații ale anumitor produse.

De exemplu, dacă atributul este dimensiunea ecranului, diferitele dimensiuni (13 inchi, 15 inchi, 17 inchi) vor fi termenii.

În acest fel, puteți combina diferitele atribute ale fiecărui produs și puteți crea diferite variații. De exemplu, puteți obține un laptop roșu de 13 inchi, un laptop albastru de 15 inchi și așa mai departe.

După cum puteți vedea, adăugarea de atribute și variații din tabloul de bord WooCommerce este destul de ușoară. Cu toate acestea, poate consuma mult timp dacă trebuie să creați multe variații. Pentru a crea atribute cu variații în bloc și pentru a gestiona un număr mare de atribute, puteți folosi puțină codare.

Să aruncăm o privire la cum să adăugați atribute de produs cu variații în WooCommerce în mod programatic .

2. Cum să creați atribute de produs cu variații în mod programatic

Dacă aveți abilități de codificare, puteți adăuga atribute ale produsului și variațiile acestora în mod programatic. Aceasta este o opțiune excelentă dacă doriți să economisiți timp când creați atribute, deoarece le puteți adăuga în bloc.

NOTĂ : Deoarece vom edita câteva fișiere de bază, înainte de a începe, vă recomandăm:

  • Creați o copie de rezervă completă a site-ului dvs., astfel încât să îl puteți restaura dacă ceva nu merge bine
  • Creați o temă copil : puteți instala oricare dintre aceste pluginuri sau puteți consulta acest ghid pentru a crea unul. În acest fel, nu vă veți pierde personalizările când vă actualizați tema la o versiune nouă.

Rețineți că ar trebui să introduceți codul personalizat în fișierul functions.php al temei copilului.

După ce ați făcut o copie de rezervă a site-ului și ați creat tema copilului, în tabloul de bord WordPress accesați Aspect > Personalizare și căutați fișierul functions.php în coloana din dreapta. Apoi, lipiți următorul cod la sfârșitul fișierului.

Script PHP complet

Acesta este scenariul complet, în secțiunea următoare, îl vom împărți în bucăți și vom explica ce face fiecare parte.

 add_action('admin_init', 'QuadLayers_add_product_attributes');

funcția QuadLayers_add_product_attributes(){
    $atts=array(
        'size' => array('XL','Small'),
        'culoare' => array('maro', 'gri', 'galben'),   
    ); 
    foreach ($atts ca $key => $valori) { 
       new add_attribute($cheie,$valori); 
    }
}

clasa add_attribute{   
     /*
     * Înregistrați o clasă globală de atribute de produs woocommerce.
     *
     * @param str $nam | numele atributului
     * @param arr $vals | serie de variații
     * 
     */
    funcția publică __construct($nam,$vals){

                $attrs = array();      
                $atribute = wc_get_attribute_taxonomies();                          
                    foreach ($atribute ca $cheie => $valoare) {
                        array_push($attrs,$attributes[$key]->attribute_name);                    
                    }              
               if ( ! in_array( $nam, $attrs ) ) {            
                    $args = matrice(
                        'id' => '',
                        'slug' => $nam,
                        'name' => __( $nam, 'woocommerce' ),
                        'type' => 'selectați',
                        'orderby' => 'menu_order',
                        'has_archives' => false,
                        „limită” => 1,
                        'is_in_stock' => 1
                    );                    
                   returnează wc_create_attribute( $args ); 
                }               
               $this->add_var($nam,$vals);
    }

    funcția publică add_var($nam,$vals ){  
        $taxonomie = 'pa_'.$nam;      
        $term_slug = sanitize_title($nam); 
        // Verificați dacă termenul există și dacă nu îl creează (și obțineți ID-ul termenului).
        pentru ($ff=0; $ff term_id;
            }
        }
    }
}

Este de remarcat faptul că acest script nu va elimina niciun atribut existent, ci doar adaugă altele noi. Și dacă atributele pe care încercați să le adăugați sunt deja acolo, scriptul nu va face nimic.

În plus, rețineți că pentru acest exemplu, adăugăm câteva atribute și termeni. Trebuie să editați matricea de mai jos și să vă creați propriile atribute.

 funcția QuadLayers_add_product_attributes(){
    $atts=array(
        'new-attribute' => array('deoparte', 'lângă', 'lung', 'niciun', 'scurt'),        
    ); 

După aceea, mergeți la Produse > Atribute din tabloul de bord administrativ. Dacă totul a mers bine, veți vedea atributele și termenii pe care tocmai i-ați adăugat cu scriptul PHP.

Variații ale atributelor produsului

Dacă nu puteți vedea variațiile, trebuie doar să reîncărcați pagina pentru a se putea popula.

În plus, atributele vor fi disponibile și pentru a configura variații de produs pe pagina editorului de produse:

atributele vor fi acum disponibile și pentru setarea variațiilor de produs,

Si asta e! Acum puteți pur și simplu să editați scriptul PHP și să adăugați propriile atribute și variații ale produsului WooCommerce. Puteți chiar să-l actualizați dinamic prin aplicarea logicii condiționate.

Cum funcționează scenariul?

Până acum, v-am arătat un script pentru a adăuga atribute ale produsului WooCommerce cu variații în magazinul dvs. Acum haideți să o descompuneți, astfel încât să puteți înțelege mai bine cum funcționează și să-l personalizați.

Secțiunile principale ale scenariului sunt:

Carligul
 add_action('admin_init', 'QuadLayers_add_product_attributes');

funcția QuadLayers_add_product_attributes(){
    $atts=array(
        'size' => array('XL','Small'),
        'culoare' => array('maro', 'gri', 'galben'),   
    ); 
    foreach ($atts ca $key => $valori) { 
       new add_attribute($cheie,$valori); 
    }
}

Folosim cârligul admin_init() pentru a lansa codul. Puteți folosi mai multe alte cârlige aici, dar în cazul nostru, ne-a plăcut performanța scriptului folosind acesta.

În funcția hooked, definim valorile și variațiile atributelor noastre într-o singură matrice multidimensională. Bucla foreach() va crea un atribut pentru fiecare dintre elementele matricei principale.

În interiorul buclei, atributul este creat de clasa noastră add_attribute(); .

Clasa

Am creat o clasă OOP care este responsabilă pentru crearea atributului și adăugarea unor variații la acesta. Aceasta se face într-o singură rulare de fiecare dată când clasa este instanțiată, folosind new add_attribute() din secțiunea de mai sus.

 clasa add_attribute{   
    funcția publică __construct($nam,$vals){
                $attrs = array();      
                $atribute = wc_get_attribute_taxonomies();                          
                    foreach ($atribute ca $cheie => $valoare) {
                        array_push($attrs,$attributes[$key]->attribute_name);                    
                    }              
               if ( ! in_array( $nam, $attrs ) ) {            
                    $args = matrice(
                        'id' => '',
                        'slug' => $nam,
                        'name' => __( $nam, 'woocommerce' ),
                        'type' => 'selectați',
                        'orderby' => 'menu_order',
                        'has_archives' => false,
                        „limită” => 1,
                        'is_in_stock' => 1
                    );                    
                   returnează wc_create_attribute( $args ); 
                }               
               $this->add_var($nam,$vals);
    }

Prima funcție este un construct() și creează atributul folosind funcția wc_create_attribute() , în timp ce apelează și a doua funcție: add_var()

 funcția publică add_var($nam,$vals ){  
        $taxonomie = 'pa_'.$nam;      
        $term_slug = sanitize_title($nam); 
        // Verificați dacă termenul există și dacă nu îl creează (și obțineți ID-ul termenului).
        pentru ($ff=0; $ff < count($vals) ; $ff++) {
            if( ! term_exists( $vals [ $ff ] , $taxonomie ) ){ $term_data = wp_insert_term($vals [ $ff ] , $taxonomie ); $term_id = $term_data['term_id']; } else { $term_id = get_term_by( 'nume', $vals [ $ff ] , $taxonomie )->term_id; } } }

A doua funcție add_var() va adăuga toate variațiile incluse în tabloul original pentru atributul pe care îl trece și prin funcții.

Concluzie

Pe scurt, atributele produsului vă permit să creați produse variabile și să îi ajute pe utilizatori să filtreze produsele în funcție de anumite caracteristici.

În acest ghid, am văzut două moduri diferite de a adăuga atribute de produs cu variații în WooCommerce:

  1. Din tabloul de bord admin
  2. Din punct de vedere programatic

Crearea atributelor din tabloul de bord WooCommerce este ușoară. Cu toate acestea, poate consuma mult timp dacă trebuie să adăugați multe atribute pentru mai multe produse.

Alternativ, dacă aveți abilități de codare, le puteți crea în mod programatic. Aceasta este o metodă mai avansată care vă permite să adăugați atribute de produs în bloc. Scriptul pe care l-am folosit în această postare este complet testat și funcționează, așa că nu ezitați să-l luați ca bază și să-l personalizați. Cu toate acestea, rețineți că este conceput pentru a fi utilizat pentru un singur atribut de încărcare, nu vă recomandăm să îl implementați în producție permanent.

Dacă primiți o eroare când încercați să rulați scriptul, nu vă faceți griji. Acest lucru se întâmplă de obicei pentru că vă aflați pe pagina de listare a atributelor. Modul corect de a actualiza script-ul este reîncărcarea paginii de permalink a tabloului de bord WordPress.

Pentru mai multe informații despre cum să adăugați corect produsele WooCommerce atât programatic, cât și din tabloul de bord administrativ, aruncați o privire la acest ghid.

Ați creat atribute de produs în magazinul dvs.? Ce metoda ai folosit? Spune-ne în comentariile de mai jos!